mirror of
https://github.com/django/django.git
synced 2025-07-03 17:29:12 +00:00
[soc2009/http-wsgi-improvements] Moved common code from core.handlers.modpython and core.handlers.wsgi into core.handlers.base.process_request.
Passes regression tests. git-svn-id: http://code.djangoproject.com/svn/django/branches/soc2009/http-wsgi-improvements@11039 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
bab5ab348e
commit
a86d5ddc77
@ -63,6 +63,26 @@ class BaseHandler(object):
|
|||||||
# as a flag for initialization being complete.
|
# as a flag for initialization being complete.
|
||||||
self._request_middleware = request_middleware
|
self._request_middleware = request_middleware
|
||||||
|
|
||||||
|
def process_request(self, request_env):
|
||||||
|
signals.request_started.send(sender=self.__class__)
|
||||||
|
try:
|
||||||
|
try:
|
||||||
|
request = self.request_class(request_env)
|
||||||
|
except UnicodeDecodeError:
|
||||||
|
response = http.HttpResponseBadRequest()
|
||||||
|
else:
|
||||||
|
response = self.get_response(request)
|
||||||
|
|
||||||
|
# Apply response middleware
|
||||||
|
if not isinstance(response, http.HttpResponseSendFile):
|
||||||
|
for middleware_method in self._response_middleware:
|
||||||
|
response = middleware_method(request, response)
|
||||||
|
response = self.apply_response_fixes(request, response)
|
||||||
|
finally:
|
||||||
|
signals.request_finished.send(sender=self.__class__)
|
||||||
|
|
||||||
|
return response
|
||||||
|
|
||||||
def get_response(self, request):
|
def get_response(self, request):
|
||||||
"Returns an HttpResponse object for the given HttpRequest"
|
"Returns an HttpResponse object for the given HttpRequest"
|
||||||
from django.core import exceptions, urlresolvers
|
from django.core import exceptions, urlresolvers
|
||||||
|
@ -2,7 +2,6 @@ import os
|
|||||||
from pprint import pformat
|
from pprint import pformat
|
||||||
|
|
||||||
from django import http
|
from django import http
|
||||||
from django.core import signals
|
|
||||||
from django.core.handlers.base import BaseHandler
|
from django.core.handlers.base import BaseHandler
|
||||||
from django.core.urlresolvers import set_script_prefix
|
from django.core.urlresolvers import set_script_prefix
|
||||||
from django.utils import datastructures
|
from django.utils import datastructures
|
||||||
@ -191,21 +190,7 @@ class ModPythonHandler(BaseHandler):
|
|||||||
self.load_middleware()
|
self.load_middleware()
|
||||||
|
|
||||||
set_script_prefix(req.get_options().get('django.root', ''))
|
set_script_prefix(req.get_options().get('django.root', ''))
|
||||||
signals.request_started.send(sender=self.__class__)
|
response = self.process_request(req)
|
||||||
try:
|
|
||||||
try:
|
|
||||||
request = self.request_class(req)
|
|
||||||
except UnicodeDecodeError:
|
|
||||||
response = http.HttpResponseBadRequest()
|
|
||||||
else:
|
|
||||||
response = self.get_response(request)
|
|
||||||
|
|
||||||
# Apply response middleware
|
|
||||||
for middleware_method in self._response_middleware:
|
|
||||||
response = middleware_method(request, response)
|
|
||||||
response = self.apply_response_fixes(request, response)
|
|
||||||
finally:
|
|
||||||
signals.request_finished.send(sender=self.__class__)
|
|
||||||
|
|
||||||
# Convert our custom HttpResponse object back into the mod_python req.
|
# Convert our custom HttpResponse object back into the mod_python req.
|
||||||
req.content_type = response['Content-Type']
|
req.content_type = response['Content-Type']
|
||||||
|
@ -6,7 +6,6 @@ except ImportError:
|
|||||||
from StringIO import StringIO
|
from StringIO import StringIO
|
||||||
|
|
||||||
from django import http
|
from django import http
|
||||||
from django.core import signals
|
|
||||||
from django.core.handlers import base
|
from django.core.handlers import base
|
||||||
from django.core.urlresolvers import set_script_prefix
|
from django.core.urlresolvers import set_script_prefix
|
||||||
from django.utils import datastructures
|
from django.utils import datastructures
|
||||||
@ -231,21 +230,7 @@ class WSGIHandler(base.BaseHandler):
|
|||||||
self.initLock.release()
|
self.initLock.release()
|
||||||
|
|
||||||
set_script_prefix(base.get_script_name(environ))
|
set_script_prefix(base.get_script_name(environ))
|
||||||
signals.request_started.send(sender=self.__class__)
|
response = self.process_request(environ)
|
||||||
try:
|
|
||||||
try:
|
|
||||||
request = self.request_class(environ)
|
|
||||||
except UnicodeDecodeError:
|
|
||||||
response = http.HttpResponseBadRequest()
|
|
||||||
else:
|
|
||||||
response = self.get_response(request)
|
|
||||||
|
|
||||||
# Apply response middleware
|
|
||||||
for middleware_method in self._response_middleware:
|
|
||||||
response = middleware_method(request, response)
|
|
||||||
response = self.apply_response_fixes(request, response)
|
|
||||||
finally:
|
|
||||||
signals.request_finished.send(sender=self.__class__)
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
status_text = STATUS_CODE_TEXT[response.status_code]
|
status_text = STATUS_CODE_TEXT[response.status_code]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user