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

本文探讨了Django 1.11.2版本中多线程服务的特点及限制,并讨论了如何通过使用Tornado实现异步处理,同时提出了一种利用中间件进行自定义请求响应处理的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我的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 参数,我想应该通过这里会有回调的方式处理吧。

后记:

貌似用闭包可以

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值