手机也能上课
1/6
获取POST方法传送的数据
作为一种HTTP请求方法,POST用于向指定的资源提交要被处理的数据。
比如: 我们在某网站注册用户、写文章等时候,需要将数据传递到网站服务器中。并不适合将数据放到URL参数中,密码放到URL参数中容易被看到,文章数据又太多,浏览器不一定支持太长长度的URL。这时,一般使用POST方法。
本课程使用python的requests库模拟浏览器。
安装方法:
pip install requests
看POST数据内容
以用户注册为例子,我们需要向服务器/register传送用户名name和密码password。如下编写server.py。
from flask import Flask, request
app = Flask(__name__)
@app.route('/register', methods=['POST'])
def register():
print(request.headers)
print(request.stream.read())
return 'welcome'
if __name__ == '__main__':
app.run(port=5000, debug=True)
@app.route('/register', methods=['POST'])
是指url/register
只接受POST方法。可以根据需要修改methods参数,例如如果想要让它同时支持GET和POST,这样写:
@app.route('/register', methods=['GET', 'POST'])
浏览器模拟工具client.py
内容如下:
import requests
user_info = {'name': 'Loen', 'password': 'loveyou'}
r = requests.post("http://127.0.0.1:5000/register", data=user_info)
print(r.text)
运行server.py
,然后运行client.py
。client.py
将输出:
welcome
而server.py在终端中输出以下调试信息(通过print输出):
前6行是client.py生成的HTTP请求头,由print(request.headers)输出。
请求体的数据,我们通过print(request.stream.read())输出,结果是:
b'name=Loen&password=loveyou'