2013-03-19 20 views
6

Windows 7
Python 2.7.3
Django 1.5
Python manage.py runserverdjango Tutorial: benutzerdefinierte 404 und 500 Ansichten

Ich verfolge das Tutorial, wie finden Sie auf 'https://docs.djangoproject.com/en/1.5/intro/tutorial03/'

I bis die "Write a 404 (page not found) Ansicht" aufgerufen wurde, bevor die Dinge merkwürdig wurden.

Ich habe versucht herauszufinden, wie man eine benutzerdefinierte 404-Ansicht erstellen kann. Allerdings bin ich mir nicht sicher:

A. Wo genau sollte die benutzerdefinierte 404.html Datei residieren. Sollte es in meinem Projekt Verzeichnisbaum oder in meinem Django Verzeichnisbaum sein. Mein Projekt Verzeichnisbaum wie folgt aussieht,

1> mysite 
2>  - mysite 
3>  - polls 
4>   - templates 
5>    - polls 
6>  - templates 
7>   - admin 

Derzeit ist die 404.html ist @ 6>

B. Welche Änderungen haben, wo gemacht werden? Ich verstehe, dass ein Handler404 und ein Handler500 im Root-URL-Conf gesetzt werden müssen. Ich habe eine url.py residing @ 2> und 3> (siehe Baum oben). Angenommen, 2> ist die richtige Stelle Ich gehe davon aus, dass die Syntax wie folgt ist:

Was muss noch eingestellt werden, wo?

Antwort

7

Wie ich sehen kann, haben Sie einen kleinen Fehler, aber keine Sorge.

Schauen Sie, versuchen Sie dies:

handler404 = 'mysite.views.error404' 

Dann in mysite (die zweite mysite) erzeugt eine views.py wenn Sie nicht. In diesem views.py setzen:

from django.shortcuts import render 

def error404(request): 
    return render(request,'404.html') 

und das ist alles! In Vorlagen, erstellen Sie diese Datei und machen Sie etwas nettes!

Denken Sie daran, dass nur in der Produktion funktioniert (DEBUG=False) sonst django die Traceback verwenden. Ist das gleiche für 505, und Sie können vielleicht versuchen handler404 = 'polls.views.see404' und setzen Sie die ansichten.py dann aber Sie wissen, Geschmäcker sind unterschiedlich hehehe. Jetzt

, versuchen Sie etwas anderes, zum Beispiel: Kommentar im urls.py

#handler404 = 'mysite.views.error404'

und entfernen Sie auch in der views.py die def.

Im Index Ihrer Templates-Datei erstellt eine einfache 404.html. Führen Sie den Server in Produktion und produzieren Sie diesen Fehler 404, was ist passiert?

+2

haben Sie vergessen, den Statuscode 404 zu setzen – DataGreed

Verwandte Themen