我认为这一定是一个非常简单的问题,或者也许我忽略了一些专业的问题,但是我只开始了,还有一些我无法找到的东西。我写了一个简单的烧瓶应用程序:
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
渲染以保持代码智能。