【发布时间】:2016-08-04 16:46:14
【问题描述】:
from flask import request
@app.route('/')
def index():
user_agent = request.headers.get('User-Agent')
return '<p>Your browser is %s</p>' % user_agent
注意在这个视图中函数
request是如何使用的,就好像它是一个全局的一样 多变的。实际上,request不能是全局变量,如果你 考虑在多线程服务器中线程正在处理 同时来自不同客户端的不同请求,所以每个 线程需要在请求中看到不同的对象。上下文启用 Flask 使线程可以全局访问某些变量 不干扰其他线程。
可以理解,但为什么不简单地将request 变成thread-local variable?在底层,request 到底是什么,它与线程局部变量有何不同?
【问题讨论】:
-
因为线程局部变量无法区分greenlet?
标签: python python-3.x flask python-multithreading