• Flask 应用上下文


    应用上下文(application context)

    它的字面意思是 应用上下文,但它不是一直存在的,它只是request context 中的一个对 app 的代理(人),所谓local proxy。它的作用主要是帮助 request 获取当前的应用,它是伴 request 而生,随 request 而灭的。

    应用上下文对象有:current_app,g

    current_app

    应用程序上下文,用于存储应用程序中的变量,可以通过current_app.name打印当前app的名称,也可以在current_app中存储一些变量,例如:

    应用的启动脚本是哪个文件,启动时指定了哪些参数

    加载了哪些配置文件,导入了哪些配置

    连了哪个数据库

    有哪些public的工具类、常量

    应用跑再哪个机器上,IP多少,内存多大

    current_app.name(打印文件名)

    current_app.test_value='value'

    from flask import Flask, current_app, g
    
    app = Flask(__name__)
    
    app.config.from_pyfile('config.ini')
    
    
    @app.route('/')
    def index():
        # current_app模块用来存储当前应用的具体配置信息
        print(current_app.__dict__)
    
    
    if __name__ == "__main__":
        app.run()

    g变量

    g 作为 flask 程序全局的一个临时变量,充当者中间媒介的作用,我们可以通过它传递一些数据,g 保存的是当前请求的全局变量,不同的请求会有不同的全局变量,通过不同的thread id区别

    g.name='abc'

    注意:不同的请求,会有不同的全局变量

    两者区别:

    请求上下文:保存了客户端和服务器交互的数据

    应用上下文:flask 应用程序运行过程中,保存的一些配置信息,比如程序名、数据库连接、应用信息等

    导包文件:

    from flask import Flask, g
    
    
    def check_username():
        username = '你好'
        g.username = '789'
        g.name = "222"
        print(username)

    配置文件:

    from flask import Flask, current_app, g
    # 从自定义的工具文件内部引用check_username方法
    from utils import check_username
    
    app = Flask(__name__)
    
    app.config.from_pyfile('config.ini')
    
    
    @app.route('/')
    def index():
        # 打印全局对象g里自定义的属性username
        check_username()
        print(g.name)
        return g.username
    
    
    if __name__ == "__main__":
        app.run()
  • 相关阅读:
    优雅的windowsC++项目的配置
    C++实现编码转换
    C++读取配置文件
    完全依赖QML实现播放器
    记一次和“N+1”的擦肩而过
    FFmpeg4.0笔记:采集系统声音
    FFmpeg4.0笔记:采集桌面
    FFmpeg4.0笔记:封装ffmpeg的解封装功能类CDemux
    SDL2:封装媒体显示播放Csdl2
    FFmpeg4.0笔记:封装ffmpeg的音频重采样功能类CSwr
  • 原文地址:https://www.cnblogs.com/Niuxingyu/p/10152866.html
Copyright © 2020-2023  润新知