方法不允许。请求的 URL 不允许该方法。在烧瓶上

Posted

技术标签:

【中文标题】方法不允许。请求的 URL 不允许该方法。在烧瓶上【英文标题】:Method Not Allowed.The method is not allowed for the requested URL. On Flask 【发布时间】:2020-07-30 12:54:54 【问题描述】:

在cmd中使用如下:

    set FLASK_APP=hello_app.py
    flask run --host=0.0.0.0

代码: '''

<input id="name-input" type="text"/>
<button id="name-button">Submit</button>
<p id="greeting"></p>

<script href="http://code.jquery.com/jquery-3.3.1.min.js"></script>
<script>
    $('#name-button').click(function(event)
        let message = 
            name: $('#name-input').val()
        
        $.post('http://192.168.1.106:5000/hello', JSON.stringify(message), function(response)
            $('#greeting').text(response.greeting);
            console.log(response);
        );
    );
</script>

'''

    from flask import Flask
    from flask import jsonify
    from flask import request

    app = Flask(__name__)
    @app.route('/hello', methods=['POST'])
    def hello():
        message = request.get_json(force=True)
        name = message['name']
         response = 
            'greeting':'Hello,' + name + '!'
        
        return jsonify(response)

   if '__name__' == '__main__':
        app.run(debug=True)'''

运行时出现 405 错误。已经尝试将“GET”添加到导致错误请求的方法中。 有人可以帮忙吗?

【问题讨论】:

【参考方案1】:

将方法更改为 ['GET','POST']

@app.route("/home",methods=['GET','POST'])

THEN 处理帖子数据

if request.method=='POST':
    #handle post data here
else:
    #return a normal page
    return "home"

也将最后一个 if 'name' == 'ma​​in': 改成这个 if __name__ == '__main__':

编辑: 在处理发布数据部分添加您的 jsonify 代码

【讨论】:

似乎服务器没有启动 这段代码应该启动服务器。放在文件底部if __name__ == '__main__': app.run(debug=True) 语法无效。 内部服务器错误 服务器遇到内部错误,无法完成您的请求。要么服务器超载,要么应用程序出错。 NameError: name 'render_template' is not defined

以上是关于方法不允许。请求的 URL 不允许该方法。在烧瓶上的主要内容,如果未能解决你的问题,请参考以下文章

“方法不允许 请求的 URL 不允许该方法。”

方法不允许烧瓶错误 405

405 错误:请求的 URL 不允许该方法

不允许烧瓶方法[重复]

使用python烧瓶从数据库中删除行?

HTTP 状态 405 - 此 URL 不支持 HTTP 方法 GET 并且请求的资源不允许指定的 HTTP 方法