API — Flask Documentation (2.0.x) (palletsprojects.com)
- request:flask中代表当前请求的
request 对象
- 作用:在视图函数中取出本次客户端的请求数据
- 导入:
from flask import request
- 代码位置:
- 代理类 from flask.app import Request ---> from flask.globals.Request
- 源码类:from flask.wrappers.Request
- 基类:from werkzeug.wrappers import Request as RequestBase
request常用属性
属性 | 说明 | 类型 |
---|---|---|
data | 记录请求体的数据,并转换为字符串 只要是通过其他属性无法识别转换的请求体数据 最终都是保留到data属性中 | bytes类型 |
form | 记录请求中的html表单数据 | ImmutableMultiDict |
args | 记录请求中的查询字符串,也可以是query_string | ImmutableMultiDict |
cookies | 记录请求中的cookie信息 | Dict |
headers | 记录请求中的请求头 | ImmutableMultiDict |
method | 记录请求使用的HTTP方法 | GET/POST |
url | 记录请求的URL地址 | string |
files | 记录请求上传的文件列表 | ImmutableMultiDict |
json | 记录ajax请求的json数据 | Dict |
from flask import Flask, request
from urllib.parse import parse_qsapp = Flask(__name__)@app.route("/qs")
def qs():"""获取客户端请求的查询字符串参数:return:""""""请求url:http://127.0.0.1:5000/qs?user=xiaoming&age=16"""# 获取原始的查询字符串参数,格式:bytesprint(request.query_string)# b'user=xiaoming&age=16'# # 针对原始的查询字符串参数,转换成字典格式query_string = parse_qs(request.query_string.decode())print(query_string) # {'user': ['xiaoming'], 'age': ['16']}# # 获取参数值# print(query_string["user"][0])# # 获取查询字符串参数,格式:ImmutableMultiDict#request.args 这个方法会原封不动地接收参数,会将数据一个个打印出来# print(request.args)# # ImmutableMultiDict([('user', 'xiaoming'), ('age', '16')])"""请求url:http://127.0.0.1:5000/qs?user=xiaoming&fav=shopping&fav=coding&fav=rap"""# # 获取单个参数值print(request.args["user"]) # 'xiaoming'print(request.args.get("user")) # 'xiaoming'#上面两个方法的区别在于,如果user不存在,使用第一种方法会报错,但是第二种不会print(request.args["fav"]) # 'shopping'#上面的方法都是只能获取一个参数值,如果想要获取多个参数值,就加上gatlist,这样子输出的是一个列表的形式print(request.args.getlist("fav")) # ['shopping', 'coding', 'rap']return "hello, flask"if __name__ == '__main__':app.run(host="0.0.0.0", port=5000, debug=True)