flask-analysis
  • 简介
  • 序
  • 代码目录与详解
    • artwork目录
    • docs目录
    • examples目录
    • tests目录
    • 其他辅助文件
  • 主程序剖析
    • 短短几行 flask到底做了啥
    • 路由系统 为何如此简洁高效
    • 路由匹配探秘
    • 全局对象request解析
    • 全局对象g解析
    • 全局对象current_app解析
    • 全局对象session解析
    • flask特性之signal系统
    • flask特性之blueprint
    • flask特性之methodview
    • flask特性之配置系统
    • flask特性之模板系统
  • flask生态
    • 官方文档
    • 扩展推荐
    • 扩展开发
  • 推荐阅读
  • 贡献名单
Powered by GitBook
On this page

Was this helpful?

  1. 主程序剖析

全局对象current_app解析

current_app,这算得上flask中最容易理解的全局对象了。由名字可知,current_app为当前的app对象,我们可以通过current_app来获取当前flask的配置等信息,也可以动态修改当前flask的属性等等。 贴源码:

from werkzeug.local import LocalProxy
from werkzeug.local import LocalStack
def _find_app():
    top = _app_ctx_stack.top
    if top is None:
        raise RuntimeError(_app_ctx_err_msg)
    return top.app

_app_ctx_stack = LocalStack()
current_app = LocalProxy(_find_app)

由_find_app函数可知,current_app始终是_app_ctx_stack的栈顶元素,也就是指向当前的Flask类的实例。

Previous全局对象g解析Next全局对象session解析

Last updated 5 years ago

Was this helpful?