应用上下文和请求上下文

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()

 

from flask import g


def log_a():
    #只要绑定到g对象上的属性,哪里都能用
    print('log a %s' % g.username)


def log_b():
    print('log b %s' % g.username)


def log_c():
    print('log c %s' % g.username)

 

 

 

转载于:https://www.cnblogs.com/wuheng-123/p/9748609.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值