1
0
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:
Chris Cahoon 2009-06-18 05:01:23 +00:00
parent bab5ab348e
commit a86d5ddc77
3 changed files with 22 additions and 32 deletions

View File

@ -63,6 +63,26 @@ class BaseHandler(object):
# as a flag for initialization being complete.
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):
"Returns an HttpResponse object for the given HttpRequest"
from django.core import exceptions, urlresolvers

View File

@ -2,7 +2,6 @@ import os
from pprint import pformat
from django import http
from django.core import signals
from django.core.handlers.base import BaseHandler
from django.core.urlresolvers import set_script_prefix
from django.utils import datastructures
@ -191,21 +190,7 @@ class ModPythonHandler(BaseHandler):
self.load_middleware()
set_script_prefix(req.get_options().get('django.root', ''))
signals.request_started.send(sender=self.__class__)
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__)
response = self.process_request(req)
# Convert our custom HttpResponse object back into the mod_python req.
req.content_type = response['Content-Type']

View File

@ -6,7 +6,6 @@ except ImportError:
from StringIO import StringIO
from django import http
from django.core import signals
from django.core.handlers import base
from django.core.urlresolvers import set_script_prefix
from django.utils import datastructures
@ -231,21 +230,7 @@ class WSGIHandler(base.BaseHandler):
self.initLock.release()
set_script_prefix(base.get_script_name(environ))
signals.request_started.send(sender=self.__class__)
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__)
response = self.process_request(environ)
try:
status_text = STATUS_CODE_TEXT[response.status_code]