首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python flask DELETE请求

Python flask DELETE请求
EN

Stack Overflow用户
提问于 2020-04-30 00:25:48
回答 2查看 4.2K关注 0票数 0

我正在开发一个Python应用程序并使用flask,这是我的DELETE函数:

代码语言:javascript
复制
@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'

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

代码语言:javascript
复制
Method Not Allowed
The method is not allowed for the requested URL.
EN

回答 2

Stack Overflow用户

发布于 2020-04-30 02:37:38

浏览器仅支持AJAX请求的PUT和DELETE,但不支持HTML表单提交。HTML form标签将只允许GETPOST方法。

在您的示例中,您可以像这样发送ajax请求,

代码语言:javascript
复制
$.ajax({
url: '{{url_for("DeleteMessage")}}',
type: 'DELETE',
success: function(result) {
    // write something if needed
}
});
票数 2
EN

Stack Overflow用户

发布于 2020-04-30 02:48:07

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

您可以在以下问题中了解如何发送DELETE请求:How to send DELETE request?

其他信息:

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61506681

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档