![3 Python全栈工程师之从网页搭建入门到Flask全栈项目实战 - 入门Flask微框架](http://shimg.jingyanzongjie.com/230726/205050M22-41.png)
文章插图
上下文对象简述:
- 上下文分为应用上下文和请求上下文,在编程的过程当中,我们不需要关注应用和请求细微的差别,但是我们要理解什么是上下文,以及他们共同的特点
- 在分派请求之前激活应用上下文和请求上下文
- 在请求处理完成后将其删除
- current_app:当前应用的实例,可以理解为即下图的app
![3 Python全栈工程师之从网页搭建入门到Flask全栈项目实战 - 入门Flask微框架](http://shimg.jingyanzongjie.com/230726/2050502019-42.png)
文章插图
- g:处理请求时的临时存储对象,每次请求都会重设这个变量
- 定义的时候讲了,current_app代表当前应用的实例;然后呢,当前应用的实例我们用app来接的 。app和current_app目前表示的应该一个东西,通过打印各自的内容、==判别时发现结果是一样的 。但是通过is来判断两个是不是同一个时,结果为False 。简单理解记忆:current_app和示例代码应用实例对象app里面的内容是一样的,但是他俩不是一个东西就行 。
![3 Python全栈工程师之从网页搭建入门到Flask全栈项目实战 - 入门Flask微框架](http://shimg.jingyanzongjie.com/230726/2050501A1-43.png)
文章插图
请求上下文对象
- request:请求对象,封装了客户端发出的HTTP请求中的内容
- session:用户会话,各请求之间的数据共享
![3 Python全栈工程师之从网页搭建入门到Flask全栈项目实战 - 入门Flask微框架](http://shimg.jingyanzongjie.com/230726/2050503R0-44.png)
文章插图
5.2.请求报文请求报文_常用参数
- method:请求的类型(GET/POST/OPTIONS等)
- form:POST请求数据dict
- args:GET请求数据dict
- values:POST请求和GET请求数据集合dict
- files:上传的文件数据dict
- cookies:请求中的cookie dict
- headers:HTTP请求头
1)获取get参数(request.args):请求不传,默认是None;获取get参数时,对未传值参数可以赋予默认值,常见应用场景为分页
![3 Python全栈工程师之从网页搭建入门到Flask全栈项目实战 - 入门Flask微框架](http://shimg.jingyanzongjie.com/230726/205050A52-45.png)
文章插图
2)解析请求头中的IP地址((request.headers):通过request.headers.get()获取请求头相关信息;request.remote_addr获取远程客户端ip地址
![3 Python全栈工程师之从网页搭建入门到Flask全栈项目实战 - 入门Flask微框架](http://shimg.jingyanzongjie.com/230726/205050G30-46.png)
文章插图
5.3.请求钩子问题:如下场景如何实现?
- 每个请求中都要验证用户信息(是否已登录、是否有权限访问)
- 限制来自某些IP的恶意请求
- before_first_request:服务器初始化后第一个请求到达前执行
- before_request:每一个请求到达前执行
- after_request:每次请求处理完成后执行,如果请求过程中产生了异常,则不执行
- teardown_request:每次请求处理 完成后执行,如果请求过程中产生了异常也执行
![3 Python全栈工程师之从网页搭建入门到Flask全栈项目实战 - 入门Flask微框架](http://shimg.jingyanzongjie.com/230726/2050505195-47.png)
文章插图
5.4.响应报文响应报文包含内容常用如下:
- response:响应内容
- status:响应状态码
- headers:响应头信息
1)在return的时候将响应报文内容加上:响应内容、响应状态码、自定义响应头信息;不常用
![3 Python全栈工程师之从网页搭建入门到Flask全栈项目实战 - 入门Flask微框架](http://shimg.jingyanzongjie.com/230726/2050506028-48.png)
文章插图
2)构造一个响应对象make_response;常用
响应对象方式一:构造的时候就将响应报文内容传进去
![3 Python全栈工程师之从网页搭建入门到Flask全栈项目实战 - 入门Flask微框架](http://shimg.jingyanzongjie.com/230726/205050B17-49.png)
文章插图
经验总结扩展阅读
- 软件工程师工资一个月多少钱 每月挣的多吗
- 跟我学Python图像处理丨图像特效处理:毛玻璃、浮雕和油漆特效
- 四 Selenium4.0+Python3系列 - 常见元素操作(含鼠标键盘事件)
- 二、python基本数据类型
- python3使用mutagen进行音频元数据处理
- Python 根据两个字段排序 中文排序 汉字排序 升序 降序
- python渗透测试入门——基础的网络编程工具
- 软件开发工程师一个月多少钱 工资待遇好吗
- Python学习三天计划-3
- 软件工程师月薪一般有多少 工资多少钱