二十五岁时我们都一样愚蠢、多愁善感,喜欢故弄玄虚,可如果不那样的话,五十岁时也就不会如此明智。
标题:Flask HTTP方法
Http协议是万维网数据通信的基础。本协议定义了从指定URL中检索不同数据的方法。
下表总结了不同的http方法 -
序号 方法和说明 1 GET 将数据以未加密的形式发送到服务器。最常见的方法。 2 HEAD 与GET相同,但没有响应主体 3 POST 用于将HTML表单数据发送到服务器。通过POST方法接收的数据不会被服务器缓存。 4 PUT 用上传的内容替换目标资源的所有当前表示。 5 DELETE 删除由URL给出的所有目标资源的所有表示 默认情况下,Flask路由响应 GET 请求。但是,可以通过为 route() 装饰器提供方法参数来更改此首选项。
为了演示在URL路由中使用 POST 方法,首先让我们创建一个HTML表单并使用 POST 方法将表单数据发送到URL。
将以下脚本保存为login.html
<HTML> <BODY> <form action =“http:// localhost:5000 / login”method =“post”> <p>输入名称:</ p> <p> <input type =“text”name =“nm”/> </ p> <p> <input type =“submit”value =“submit”/> </ p> </ FORM> </ BODY> </ HTML>现在在Python shell中输入以下脚本。
from flask import Flask, redirect, url_for, request app = Flask(__name__) @app.route('/success/<name>') def success(name): return 'welcome %s' % name @app.route('/login',methods = ['POST', 'GET']) def login(): if request.method == 'POST': user = request.form['nm'] return redirect(url_for('success',name = user)) else: user = request.args.get('nm') return redirect(url_for('success',name = user)) if __name__ == '__main__': app.run(debug = True)开发服务器开始运行后,在浏览器中打开 login.html ,在文本字段中输入名称并单击 提交 。
表单数据被张贴到表单标签的action子句中的URL。
http:// localhost / login 被映射到 login() 函数。由于服务器已通过 POST 方法接收数据,因此从表单数据获得的'nm'参数的值由以下方式获得 -
user = request.form ['nm']
它作为可变部分传递给 '/ success'URL 。浏览器在窗口中显示 欢迎 消息。
更改方法参数 “GET” 中 的login.html 并在浏览器再次打开它。在服务器上收到的数据是通过 GET 方法。'nm'参数的值现在通过以下方式获得 -
User = request.args.get('nm')这里, args 是字典对象,它包含一系列表单参数及其对应值。与之前一样,与'nm'参数对应的值将传递到'/ success'URL。