python3 模块详细解释_详解Python3中的contextvars模块

什么是上下文(Context)?

Context Variables,也就是「上下文变量」。

Context是一个包含了相关环境内容的对象。这不是什么很高深的设计,其实和我们的日常生活也是息息相关的。

举个比较实时的例子,权力的游戏第八季刚开播,如果你没看过前七季,不了解过去的剧情、人物关系、过去的种种主线副线发展,去看第八季第一集是完全看不懂的,因为你缺失了这个美剧的上下文。

上下文就带着这些信息,如果有一人非常了解过去的那些剧情甚至看过原著,Ta可以把那些第八季能关联到的故事、剧情搞一个视频剪辑(上下文对象),那么你不需要把过去完整的七季完整看一遍,可能花一个小时看看这个视频(获得上下文对象),就能继续看第八季(完成之后的操作)。

Flask的设计中就包含了Context(下面不再说上下文,而统一用Context)。这个设计有什么用呢?简单地说:可以在一些场景下隐式地传递变量

我们看一下Django和Sanic怎么传递请求对象Request:# Django

from django.http import HttpResponse

def index(request):

text = request.GET.get('text')

return HttpResponse(f'Text is {text}')

# Sanic

from sanic import response

app = Sanic()

@app.route('/')

async def index(request):

text = request.args.get('text')

return response.text(f'Text is {text}')

这2个框架都有一个问题:视图函数上要显式的传递request(请求对象)。我们再看看Flask的效果:from flask import Flask, request

app = Flask(__name__)

@app.route('/')

def index():

text = request.args.get('text')

return f'Text is {text}'

在Flask中,request是import进来使用的(不需要就不用import)&#

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值