2013-03-19 8 views
6

Windows 7
Python 2.7.3
Django 1.5
python manage.py runserverDjango: niestandardowe 404 i 500 odsłon

śledzę tutorial jak dostępny w 'https://docs.djangoproject.com/en/1.5/intro/tutorial03/'

I dotarłem do widoku "Napisz 404 (nie znaleziono strony)", zanim sprawy się nie skończyły.

Próbowałem dowiedzieć się, jak utworzyć niestandardowy widok 404. Jednak nie jestem pewien:

A. Gdzie powinien znajdować się niestandardowy plik 404.html. Powinien znajdować się w moim drzewie katalogów projektu lub w moim drzewie katalogów Django. Moje drzewo katalogów projekt wygląda tak,

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

Obecnie 404.html jest @ 6>

B. Jakie zmiany muszą być dokonywane gdzie? Rozumiem, że handler404 i handler500 muszą być ustawione w konfigurze URL "root". Mam adres url.py zamieszkujący @ 2> i 3> (patrz drzewo powyżej). Zakładając, że 2> jest poprawnym miejscem, zakładam, że składnia jest następująca: gdzie jeszcze należy ustawić, gdzie?

Odpowiedz

7

Jak widzę, masz mały błąd, ale nie martw się.

Look, spróbuj tego:

handler404 = 'mysite.views.error404' 

Następnie w mysite (drugi mojawitryna) tworzy views.py jeśli nie masz. W tym views.py put:

from django.shortcuts import render 

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

i to wszystko! W szablonach utwórz ten plik i zrób coś miłego!

Pamiętaj, że działa tylko w produkcji (DEBUG=False) w przeciwnym razie django użyje funkcji traceback. To samo dla 505, a może możesz spróbować handler404 = 'polls.views.see404' i umieścić w views.py następnie, ale wiesz, smaki są różne hehehe.

Teraz spróbować czegoś innego, na przykład: Komentarz w urls.py

#handler404 = 'mysite.views.error404'

i usunąć zbyt w views.py DEF.

W indeksie plików szablonów tworzy prosty 404.html. Uruchom serwer w produkcji i wygeneruj 404 błąd, co się stało?

+2

zapomniałeś wpisać kod statusu 404 – DataGreed

Powiązane problemy