本文概述
HTTP是超文本传输协议, 被认为是万维网上数据传输的基础。所有网络框架(包括flask)都需要提供几种HTTP方法进行数据通信。
下表中给出了这些方法。
SN | Method | Description |
---|---|---|
1 | GET | 这是最常见的方法, 可用于将未加密形式的数据发送到服务器。 |
2 | HEAD | 它类似于GET, 但不带响应主体使用。 |
3 | POST | 它用于将表单数据发送到服务器。服务器不缓存使用post方法传输的数据。 |
4 | PUT | 它用于用上载的内容替换目标资源的所有当前表示形式。 |
5 | DELETE | 它用于删除URL中指定的目标资源的所有当前表示形式。 |
我们可以在Flask类的route()函数中指定用于处理请求的HTTP方法。默认情况下, 请求由GET()方法处理。
POST方法
要在服务器上处理POST请求, 让我们首先创建一个表单以从用户那里获取一些客户端数据, 然后我们将尝试使用POST请求在服务器上访问此数据。
login.html
<html>
<body>
<form action = "http://localhost:5000/login" method = "post">
<table>
<tr><td>Name</td>
<td><input type ="text" name ="uname"></td></tr>
<tr><td>Password</td>
<td><input type ="password" name ="pass"></td></tr>
<tr><td><input type = "submit"></td></tr>
</table>
</form>
</body>
</html>
现在, 将以下代码输入到名为post_example.py的脚本中。
post_example.py
from flask import *
app = Flask(__name__)
@app.route('/login', methods = ['POST'])
def login():
uname=request.form['uname']
passwrd=request.form['pass']
if uname=="ayush" and passwrd=="google":
return "Welcome %s" %uname
if __name__ == '__main__':
app.run(debug = True)
现在, 通过使用python post_exmple.py运行脚本来启动开发服务器, 并在Web浏览器上打开login.html, 如下图所示。
提供所需的输入, 然后单击Submit, 我们将得到以下结果。
因此, 通过使用post方法将表单数据发送到开发服务器。
GET方法
让我们考虑一下Get方法的相同示例。但是, 服务器端的数据检索语法有所变化。首先, 将表单创建为login.html。
login.html
<html>
<body>
<form action = "http://localhost:5000/login" method = "get">
<table>
<tr><td>Name</td>
<td><input type ="text" name ="uname"></td></tr>
<tr><td>Password</td>
<td><input type ="password" name ="pass"></td></tr>
<tr><td><input type = "submit"></td></tr>
</table>
</form>
</body>
</html>
现在, 将以下python脚本创建为get_example.py。
get_example.py
from flask import *
app = Flask(__name__)
@app.route('/login', methods = ['GET'])
def login():
uname=request.args.get('uname')
passwrd=request.args.get('pass')
if uname=="ayush" and passwrd=="google":
return "Welcome %s" %uname
if __name__ == '__main__':
app.run(debug = True)
现在, 在Web浏览器上打开HTML文件login.html并提供所需的输入。
现在, 单击提交按钮。
因为我们可以检查结果。使用get()方法发送的数据在开发服务器上检索。
通过使用以下代码行可以获取数据。
uname = request.args.get('uname')
在这里, args是一个字典对象, 其中包含表单参数对及其相应值对的列表。
在上图中, 我们还可以检查URL, 其中也包含与请求一起发送到服务器的数据。这是GET请求和POST请求之间的重要区别, 因为发送到服务器的数据未显示在POST请求的浏览器的URL中。
评论前必须登录!
注册