Flask(7)- request 对象

Flask 中很重要的 request 对象

浏览器访问服务端时,向服务端发送请求

Flask 程序使用 request 对象描述请求信息

当你想获取请求体、请求参数、请求头数据的时候,就需要靠 request 对象了

这一篇会用结果驱动源码解析的方式来讲解

 

真实使用场景

浏览器访问服务端,需要将相应的数据发送给服务端,可能有如下场景:

通过 URL 参数进行查询,浏览器需要将查询参数发送给服务端

提交表单 form 进行查询,浏览器需要将表单 form 中的字段发送给服务端

上传文件,浏览器需要将文件发送给服务端

通过 JSON 格式的请求体进行请求,一般是 post 请求

服务端收到将客户端发送的数据后,封装形成一个请求对象,在 Flask 中,请求对象是一个模块变量 flask.request

 

request 包含的常用属性  属性 说明
method   当前的请求方法  
form   表单参数及其值的字典对象  
args   查询字符串的字典对象  
values   包含所有数据的字典对象  
json   如果 mimetype 是 application/json,这个参数将会解析 json 数据,如果不是则返回 None  
headers   http 协议 请求头  
cookies   cookie 名称和值的字典对象  
files   与上传文件有关的数据  

form、args、values、json 都是获取 http 请求的请求数据的属性,只不过请求体类型不同

 

还记得之前讲 url 组成的时候,request 对象也能获取 url 相关参数吗,复习下

 

request 获取 url 组成的常用属性

假设 URL 等于 ?userId=123,request 对象中与 URL 参数相关的属性如下

属性 说明
url   ?userId=123  
base_url    
host   localhost  
host_url    
path   /query  
full_path   /query?userId=123  

 

获取 url 请求参数的栗子 代码

#!usr/bin/env python # -*- coding:utf-8 _*- """ # author: 小菠萝测试笔记 # blog: https://www.cnblogs.com/poloyy/ # time: 2021/7/11 11:13 上午 # file: 5_request.py """ from flask import Flask, request app = Flask(__name__) @app.route('/query') def query(): return {"name": request.args['name'], "age": request.args['age']} @app.route('/query2') def query2(): print('args =', request.args) print('form =', request.form) return "form" @app.route('/query3') def query3(): print('args =', request.args) print('json =', request.json) return "json" @app.route('/query4') def query4(): return {"name": request.values['name'], "age": request.values['age']} if __name__ == '__main__': app.run(debug=True)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwpsgd.html