在Flask中通过request对象请求相关的数据,在正常的网页请求的过程中,有两种请求的方式,Get和Post
我们现在来看看在Flask中是如何以Get方式得到我们想要的值的,通过request.args可以获取Get请求中的所有参数,以字典的形式返回。例如:
#!/usr/bin/env python3
from flask import Flask
from flask import request
from flask import render_template
# 用当前脚本名称实例化Flask对象,方便flask从该脚本文件中获取需要的内容
app = Flask(__name__)
@app.route('/')
def index():
return 'Hello World!'
#常规输入url的访问就是get方法
@app.route('/user/' )
def user_password(password):
#获取浏览器的User-Agent头
print('User-Agent',request.headers.get('User-Agent'))
#以Get请求的方式获取数据,传入的参数是time
print('time:',request.args.get('time'))
#以Get请求的方式获取数据,传入的参数是q
print('q',request.args.get('q'))
#以Get请求的方式获取数据,传入的参数是issinge
print('issinge:',request.args.get('issinge'))
return 'password is {}'.format(password)
if __name__ == '__main__':
app.run(debug=True)
保存以上的代码,运行即可
接下来,我们我们在任意浏览器输入URL链接:http://127.0.0.1:5000/user/123456?time=2122&q=3&issinge=cat,以Get的方式去请求数据,常规输入url的访问就是get方法
这里可以看到我们以Get方式请求传入的数据参数,我们这里以Get的方式拿到了我们想要的值
现在我们来学习如何以Post的方式提交数据,如果我们想要以Post的方式提交数据,通过request.form可以获取Post请求中的所有参数,以字典的形式返回,首先我们要先
运行以下的代码,例如:
#!/usr/bin/env python3
from flask import Flask
from flask import url_for
from flask import redirect
from flask import render_template
from flask import request
# 用当前脚本名称实例化Flask对象,方便flask从该脚本文件中获取需要的内容
app = Flask(__name__)
@app.route('/')
def index():
return 'Hello World!'
#methods参数用于指定允许的请求格式
@app.route('/register',methods=['Get','POST'])
def register():
print('method:',request.method)
print("name",request.form['name'])
print('password',request.form.get('password'))
print('hobbies',request.form.getlist('hobbies'))
print('age',request.form.get('age',default=18))
return 'register successd!'
if __name__ == '__main__':
app.run(debug=True)
保存即可,然后去运行这个脚本
python3 app.py
然后我们需要在写一个客户端的脚本文件(client.py),以Post的方式去提交数据:
#!/usr/bin/env python3
import requests
#设置需要发送的数据
user_info = {'name':'qianfu','password':'123456','hobbies':['code','run']}
#向url发送post请求
r = requests.post("http://127.0.0.1:5000/register",data=user_info)
print(r.text)
保存这行代码,运行脚本
#编辑脚本文件
vim client.py
#运行脚本文件
python3 client.py
此时,我们就以Post的方式提交了数据