探究django能否通过线程返回http请求

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jxust_tj/article/details/77411786

我的django版本: 1.11.2

首先说两点知识:

1. django在1.7版本之后服务默认是多线程的,也可以在开启服务时命令加个 [--nothreading] 的参数使服务禁止使用线程响应请求。官方文档

2. view 函数一定要返回一个 HttpResponse 对象

由于某些需求,多线程服务情况下,本来我想,来一个请求便自己开一个线程去取数据,然后通过这个线程响应这个请求,主线程就不会阻塞。然而由于view函数自己一定要返回一个 HttpResponse 对象,所以只能把结果返回给主线程?

疑问:

1. 看到网上有使用tornado作为django服务器从而使django的服务变成异步的形式。异步的话从结果来看就可以相当于前面线程返回请求的想法了吧,这个怎么理解?

2. 网上看一篇文章 文章链接 ,大意是:“从请求到响应要经过几个中间件,在Middleware(中间件)这个地方把所有Request拦截住,用我们自己的方式完成处理以后直接返回Response”。我的理解是,只要重写某个中间件的方法就可以了。其中的 process_view 方法引人注意。它有个 callback 参数,我想应该通过这里会有回调的方式处理吧。

后记:

貌似用闭包可以

猜你喜欢

转载自blog.csdn.net/jxust_tj/article/details/77411786