我想在Django中禁用某些URL的自动会话创建.我有/ api/*和每个点击它的客户端获得一个新的Django会话.有没有办法忽略某些网址?
Elf*_*erg 17
一个简单的解决方案是让您的网络服务器区分API调用和常规调用,然后有两个不同的应用程序WSGI实例:一个启用会话,另一个启用会话.(使用Nginx比使用Apache要容易得多.)
另一种方法是继承SessionMiddleware,然后编辑流程函数以忽略符合条件的所有请求.就像是:
from django.contrib.sessions.middleware import SessionMiddleware
class MySessionMiddleware(SessionMiddleware):
def process_request(self, request):
if request.path_info[0:5] == '/api/':
return
super(MySessionMiddleware, self).process_request(request)
def process_response(self, request, response):
if request.path_info[0:5] == '/api/':
return response
return super(MySessionMiddleware, self).process_response(request, response)
Run Code Online (Sandbox Code Playgroud)
然后编辑您的设置文件,以便MIDDLEWARE_CLASSES包含"MySessionMiddleware"的路径,而不是"django.contrib.sessions.middleware.SessionMiddleware".
| 归档时间: |
|
| 查看次数: |
3319 次 |
| 最近记录: |