PythonFlask删除请求

2024-04-23 11:50:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在开发Python应用程序和使用烧瓶,这是我的删除函数:

@app.route('/DeleteMessage', methods=['DELETE'])
def DeleteMessage():
    messages = Message.query.all()
    application_id = request.args.get('application_id')
    if application_id:
        messages.filter_by(user_id=application_id)
    session_id = request.args.get('session_id')
    if session_id:
        messages.filter_by(session_id=session_id)    
    message_id = request.args.get('message_id')
    if message_id:
        messages = message.filter_by(message_id=message_id)  
    db.session.delete(messages)
    db.session.commit()
    return 'ok'

当我尝试运行它时,它会向我发送这样一条错误消息:

Method Not Allowed
The method is not allowed for the requested URL.

Tags: id应用程序messagedbgetbyif烧瓶
2条回答

您发出GET请求,但您的flask后端正在等待该端点上的删除请求/DeleteMessage。您可以将请求方法更改为获取@app.route('/DeleteMessage', methods=['GET']),它将正常工作,但这与http标准相反

您可以在这个问题中阅读如何发送删除请求:How to send DELETE request?

其他信息:

https://www.rfc-editor.org/rfc/rfc2616#section-9.3https://www.restapitutorial.com/lessons/httpmethods.html

浏览器仅支持AJAX请求的PUT和DELETE,而不支持HTML表单提交。HTML表单标记只允许使用GETPOST方法

在您的情况下,您可以像这样发送ajax请求

$.ajax({
url: '{{url_for("DeleteMessage")}}',
type: 'DELETE',
success: function(result) {
    // write something if needed
}
});

相关问题 更多 >