烧瓶的URL获取vs post



我认为这一定是一个非常简单的问题,或者也许我忽略了一些专业的问题,但是我只开始了,还有一些我无法找到的东西。我写了一个简单的烧瓶应用程序:

from flask import Flask, request, jsonify
app = Flask(__name__)
@app.route("/")
def index():
    return "Index!"
@app.route('/test', methods=['GET', 'POST'])
def test():
    if request.method=='GET':
        return "OK this is a get method"
    elif request.method=='POST':
        return "OK this is a post method"
    else:
        return("ok")

if __name__ == "__main__":
    app.run()   

当我打开以下URL时,我会按预期获取获取方法消息。

http://localhost:5000/test

,但我无法将其切换为邮政方法。我需要输入什么URL才能查看邮政方法消息?

每当您通过浏览器发出直接URL请求时,都会进行GET调用。它与URL无关,而是与您的服务器请求有关的请求类型值。

为了提出发布请求(或任何其他类型的请求),您可以使用任何REST客户端工具,请参阅:我如何手动发射使用Firefox或Chrome的POST请求?

我个人使用的是, Postman 是Chrome的插件。 Advance Rest客户端也是实现此目标的非常好的替代方法。

如果您想要一个怪异的工具(某些人认为命令行是怪异的;)),则可以使用curl用URL传输数据。要提出POST请求,您必须称其为:

curl -i -X POST -H 'Content-Type: application/json' -d '{"param1": "value1", "param2": "value2"}' http://localhost:5000/test

html表单是您发送发布请求的主要方式。而不是您的return "Index",您可以做:

return '''
    <form method="post" action="/test">
        <input type="text" name="your field"/>
        <button type="submit">Post to your /test!</button>
    </form>
'''

实际上,您将在模板文件夹中的whatever.html文件中使用该表单代码,并使用render_template渲染以保持代码智能。

最新更新