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_qs
app = Flask(__name__)
@app.route("/qs")
def qs():
"""
获取客户端请求的查询字符串参数
:return:
"""
"""
请求url:http://127.0.0.1:5000/qs?user=xiaoming&age=16
"""
# 获取原始的查询字符串参数,格式:bytes
print(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)