首页 > 代码库 > flask web development 阅读笔记
flask web development 阅读笔记
在flask应用中,所有的flask应用都必须创建一个应用实例。web服务器把它接收的来自客户端的请求通过WSGI的协议传递给这个对象以进行处理。这时候,它会提供一种叫上下文的神奇环境,它能让一些对象可以全局可见,这样你的视图函数就可以去访问这些对象做些处理,而又在同时有那么多请求时确保线程安全。
flask里有两种上下文,应用上下文和请求上下文,这两种上下文里暴露出了4种变量:
应用上下文 |
current_app | 活动应用程序的应用实例 |
应用上下文 |
g | 在处理请求时临时存储数据,每次请求都会被重设 |
请求上下文 |
request | request对象,封装了客户端发出的http请求的内容 |
请求上下文 |
session | 用来存储值的字典,这些值在请求中是被记住的 |
flask在调度每个请求前都会push这两种上下文,而请求被处理后又被移除。应用上下文被push时它对应的两个变量就可以被线程访问了,请求上下文也是一样的道理。当然,假如这些上下文没有被激活的话,访问这些变量就会引发错误了。
举个例子:
>>>from flask import Flask, current_app >>>app = Flask(__name__) >>>current_app Traceback (most recent call last): ... RuntimeError: working outside of application context >>>app_ctx = app.app_context() >>>app_ctx.push() >>>current_app.name ‘__main__‘ >>>app_ctx.pop()
flask web development 阅读笔记
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。