Flask框架之Flask_app上下文

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)
发布了325 篇原创文章 · 获赞 4 · 访问量 4067

猜你喜欢

转载自blog.csdn.net/weixin_44733660/article/details/103964881