目录
百战程序员,全站22050+开发课程+文档 ,学习精选优质好课快人一步!观看视频 快捷键ALT+N

Python全系列 教程

3567个小节阅读:5930.2k

收藏
全部开发者教程

鸿蒙应用开发

C语言快速入门

JAVA全系列 教程

面向对象的程序设计语言

Python全系列 教程

Python3.x版本,未来主流的版本

人工智能 教程

顺势而为,AI创新未来

大厂算法 教程

算法,程序员自我提升必经之路

C++ 教程

一门通用计算机编程语言

微服务 教程

目前业界流行的框架组合

web前端全系列 教程

通向WEB技术世界的钥匙

大数据全系列 教程

站在云端操控万千数据

AIGC全能工具班

A

A A

White Night

阅读(2.1k)
赞(0)

Flask_request上下文详解

image-20211109113124180

请求上下文:

请求上下文也是存放到一个LocalStack的栈中。

和请求相关的操作就必须用到请求上下文,比如使用url_for反转视图函数。

注意

在视图函数中,不用担心请求上下文的问题。

因为视图函数要执行,那么肯定是通过访问url的方式执行的,

那么这种情况下,Flask底层就已经自动的帮我们把应用上下文和请求上下文都推入到了相应的栈中。

注意

如果想要在视图函数外面执行相关的操作,

比如反转url,那么就必须要手动推入请求上下文:

底层代码执行说明:

1. 推入请求上下文到栈中,会首先判断有没有应用上下文

2. 如果没有那么就会先推入应用上下文到栈中

3. 然后再推入请求上下文到栈中

总结

为什么上下文需要放在栈中?

1. 应用上下文:Flask底层是基于werkzeug,werkzeug是可以包含多个app的,所以这时候用一个栈来保存。

如果你在使用app1,那么app1应该是要在栈的顶部,如果用完了app1,那么app1应该从栈中删除。方便其他代码使用下面的app。

2. 如果在写测试代码,或者离线脚本的时候,我们有时候可能需要创建多个请求上下文,这时候就需要存放到一个栈中了。

使用哪个请求上下文的时候,就把对应的请求上下文放到栈的顶部,用完了就要把这个请求上下文从栈中移除掉。

实时学习反馈

1. 在Flask中,对于请求上下文说法错误的是?

A 获取请求上下文时,需要判断是否有应用上下文

B 使用视图函数不用考虑请求上下文,框架会自动推入上下文环境

C 请求上下文只能创建一个,不能同时存在

D 可以通过test_request_context方法获取一个请求上下文

答案

1=>C

 

北京市昌平区回龙观镇南店村综合商业楼2楼226室

©2014-2023 百战卓越(北京)科技有限公司 All Rights Reserved.

京ICP备14032124号-2