http://danielkeppler.com

mein Blog über Guatemala und SEO

Debugging Django Errors

Heute ( für viele Stunden) saß ich hier versucht, einen Fehler, der Django war nicht ausspuckte debuggen. Dies passiert bei der Kombination von Django + mod_wsgi und mit einer Laufzeit importieren Fehler. Das Ergebnis ist eine generische weiße Internal Server Error -Seite von Apache, und nichts in irgendeiner Art von Fehler protokolliert.

Also, um Ihnen das Leben leichter zu machen , dachte ich, ich würde Ihnen helfen, indem sie zeigen, was ich entdeckt habe.

First things first , Sie gehen zu wollen, ein Stück Debugging wsgi Middleware installieren. Das war neu für mich, sondern ihr im Wesentlichen nur eine Dekoration für Ihre Klasse wsgi Anwendung. Was ich benutzt habe Paste ErrorMiddleware ’s :
pip install -e svn+http://svn.pythonpaste.org/Paste/trunk
Nun öffnen Sie Ihren Popup -Handler -Datei ( handler.wsgi in unserem Fall) . Was wir , war es so geschafft haben , wenn DEBUG auf True gesetzt ist , dann hüllt die Anwendung Handler mit der neuen Middleware :

import os, sys, os.path# Add the project to the python path
sys.path.insert(0, os.path.join(os.path.dirname(__file__), ‘..’))
# Prevent mod_wsgi from erroring on stdout access
sys.stdout = sys.stderr

# Set our settings module
os.environ['DJANGO_SETTINGS_MODULE']=‘iplatform.settings’

import django.core.handlers.wsgi

# Run WSGI handler for the application
application = django.core.handlers.wsgi.WSGIHandler()

from django.conf import settings

# Debug middleware
if settings.DEBUG:
print >> sys.stderr, “Using Paste error middleware”
from paste.exceptions.errormiddleware import ErrorMiddleware
application = ErrorMiddleware(application, debug=True, show_exceptions_in_wsgi_errors=True)

# Create session directory if not present
if settings.SESSION_FILE_PATH:
try:
os.makedirs(settings.SESSION_FILE_PATH)
except OSError:
pass

Hoffe das hat so viel wie es mir geholfen!

ähnliche Beiträge:

Wenn dir unser Beitrag gefallen hat, setze doch einen Link auf diesen Beitrag. Hier ein Code Beispiel:

<a href="http://danielkeppler.com/2010/debugging-django-errors/">Debugging Django Errors</a>

Leave a Reply