Flask框架之Flask_app上下文

流过昼夜 提交于 2020-01-27 01:18:42

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)
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!