应用上下文和请求上下文

Posted wuheng-123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了应用上下文和请求上下文相关的知识,希望对你有一定的参考价值。

from flask import Flask,request,session,url_for,current_app
from werkzeug.local import Local,LocalStack #线程隔离技术
#只要绑定在Local对象上的属性
#在每个线程中都是隔离

app = Flask(__name__)


# print(current_app.name)#RuntimeError: Working outside of application context.
#怎么解决上面的错误
app_context = app.app_context()
app_context.push()#把当前app推进取
print(current_app.name)#flask_context_demo
#可以用with语句简化
with app.app_context():
    print(current_app.name)


@app.route(/)
def hello_world():
    #就是显示当前app的名字
    print(current_app.name)
    print(url_for(my_list))
    return Hello World!


@app.route(/list/)
def my_list():
    return my list


with app.test_request_context():
    #手动推入一个请求上下文到请求上下文栈中
    #如果当前应用上下文栈中没有应用上下
    #那么会首先推入一个应用上下文到栈中
    print(url_for(my_list))

    
if __name__ == __main__:
    app.run()

技术分享图片

技术分享图片

技术分享图片

 

以上是关于应用上下文和请求上下文的主要内容,如果未能解决你的问题,请参考以下文章

python使用上下文对代码片段进行计时,非装饰器

访问片段的上下文 [重复]

Flask中的请求上下文和应用上下文

Android:片段无法转换为上下文[重复]

flask请求和应用上下文

Flask源码之请求上下文和应用上下文