Flask_app上下文
app上下文,也叫应用上下文。
应用上下文
应用上下文是存放到一个LocalStack
的栈中。和应用app相关的操作就必须要用到应用上下文,比如通过current_app
获取当前的这个app
名字。
视图函数中
在视图函数中,不用担心应用上下文的问题。
因为视图函数要执行,那么肯定是通过访问url
的方式执行的,
那么这种情况下,Flask
底层就已经自动的把应用上下文都推入到了相应的栈中。
视图函数外
如果想要在视图函数外面执行相关的操作,
比如获取当前的app
名称,那么就必须要手动推入应用上下文:
第一种方式
from flask import Flask,current_app
app = Flask(__name__)
#app上下文
app_context = app.app_context()
app_context.push()
print(current_app.name)
@app.route('/')
def hello_world():
print(current_app.name)
#获取应用的名称
return 'Hello World!'
if __name__ == '__main__':
app.run(debug=True)
第二种方式:用with语句
from flask import Flask,current_app
app = Flask(__name__)
#app上下文
with app.app_context():
print(current_app.name)
@app.route('/')
def hello_world():
print(current_app.name)
#获取应用的名称
return 'Hello World!'
if __name__ == '__main__':
app.run(debug=True)