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.
|
||||
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
|
||||
|
@ -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']
|
||||
|
@ -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]
|
||||
|
Loading…
x
Reference in New Issue
Block a user