flask篇之Get与Post(二十五)
在Flask中通过request对象请求相关的数据,在正常的网页请求的过程中,有两种请求的方式,Get和Post
Get请求
我们现在来看看在Flask中是如何以Get方式得到我们想要的值的,通过request.args可以获取Get请求中的所有参数,以字典的形式返回。例如:
#!/usr/bin/env python3from 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/<password>')
def user_password(password):#获取浏览器的User-Agent头print('User-Agent',request.headers.get('User-Agent'))#以Get请求的方式获取数据,传入的参数是timeprint('time:',request.args.get('time'))#以Get请求的方式获取数据,传入的参数是qprint('q',request.args.get('q'))#以Get请求的方式获取数据,传入的参数是issingeprint('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的方式提交数据,如果我们想要以Post的方式提交数据,通过request.form可以获取Post请求中的所有参数,以字典的形式返回,首先我们要先
运行以下的代码,例如:
#!/usr/bin/env python3from 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的方式提交了数据