Here is the original SessionMiddleware.process_requestone provided by Django. Let's take a quick look at it.
def process_request(self, request):
session_key = request.COOKIES.get(settings.SESSION_COOKIE_NAME, None)
request.session = self.SessionStore(session_key)
We can clearly see that it explicitly gets the session identifier from cookies using the property SESSION_COOKIE_NAMEdefined in the settings. Therefore, we absolutely must create our own subclass of this SessionMiddlewareand define our own behavior process_request.
, , . :
from django.contrib.sessions.middleware import SessionMiddleware
from django.conf import settings
class CustomSessionMiddleware(SessionMiddleware):
def process_request(self, request):
session_key = request.META.get("HTTP_%s" % settings.SESSION_KEY_NAME, None)
request.session = self.SessionStore(session_key)
, SESSION_KEY_NAME django , . django original SessionMiddleware , requests.session .
. process_response, Set-Cookie.