码迷,mamicode.com
首页 > 其他好文 > 详细

Flask 应用上下文

时间:2018-12-20 22:46:35      阅读:254      评论:0      收藏:0      [点我收藏+]

标签:value   文件名   return   ini   abc   route   应用   run   不同   

 

应用上下文(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()

 

Flask 应用上下文

标签:value   文件名   return   ini   abc   route   应用   run   不同   

原文地址:https://www.cnblogs.com/Niuxingyu/p/10152866.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!