2016-06-10 11 views
0

Ich habe eine Frage zu Django und den urls.py Dateien. Ich habe während des Tutorials ein kleines Programm von openclassroom erstellt. Ich konnte die URL richtig im Projektnamen-Ordner/urls.py setzen, damit es funktioniert. Jetzt möchte ich die URL in den App-Ordner stellen und auf sie im Projektnamen-Ordner/urls.py verweisen, aber wenn ich versuche, die Seite zu benutzen, sagt sie mir, dass sie nicht existiert. Ich benutze Python 3.4 und Django 1.9.7. Das Programm heißt creps_bretonnes.Django Seite nicht gefunden mit include Muster

mein creps_bretonnes/urls.py: (Ich habe die andere Version von urlpatterns ohne Erfolg versucht)

from django.conf.urls import patterns, include, url 
from django.contrib import admin 
from blog import views 
""" 
urlpatterns = [ 
    # url(r'^accueil$', views.home), 
    # url(r'^blog/', 'blog.urls'), 
    # url(r'^blog/', include('blog.urls')), 
    url(r'^blog/', include('blog.urls')), 

] 
""" 
urlpatterns = patterns('', 
    url(r'^blog/', include('blog.urls')), 
) 

mein blog.urls.py:

from django.conf.urls import patterns, include, url 
from . import views 

#urlpatterns = patterns('blog.views', 
# url(r'^accueil$', 'home'), 
#) 
urlpatterns = [ 
    url(r'^accueil$', views.home), 
] 

Dies ist die Botschaft, die ich erhalten von der Seite http://localhost:8000/blog/accueil/

Seite nicht gefunden (404)

Anfrage Methode: GET

Anforderungs-URL: http://localhost:8000/blog/accueil/

die URLconf in creps_bretonnes.urls definiert verwenden, versucht Django diese URL-Muster, die in dieser Reihenfolge:

  1. ^Blog/^ accueil $

Die aktuelle URL, blog/accueil /, stimmt nicht mit diesen überein.

Sie sehen diesen Fehler, weil Sie DEBUG = True in Ihrer Django-Einstellungsdatei haben. Ändern Sie das in False, und Django zeigt eine Standard 404-Seite an.

Ich bin hier stecken und weiß nicht weiter. Kann mir bitte jemand helfen?

Danke, SP

Antwort

0

Sie haben versucht, die URL http://localhost:8000/blog/accueil (ohne Schrägstrich), aber Ihre URL-Muster ist ^accueil$ (ohne Schrägstrich).

können Sie entweder die URL-Muster ändern:

url(r'^accueil/$', views.home), 

Oder Sie können die vorhandenen URL-Muster auf http://localhost:8000/blog/accueil zugreifen.

Bei Django ist es üblich, einen nachgestellten Schrägstrich in die URL-Muster einzufügen, daher empfehle ich den ersten Ansatz.

+0

Hallo, Danke für Ihre Hilfe. Nur um zu verstehen, es ist eigentlich das gleiche URL-Muster. Warum wird es dann anders interpretiert? – StaP

+0

Es wird nicht anders interpretiert. Wenn Sie 'url (r '^ accueil/$', ansichten.home),' innerhalb 'creps_bretonnes/urls.py' verwenden, dann funktioniert' http: // localhost: 8000/accueil', aber 'http: // localhost: 8000/accueil/'gibt einen ähnlichen 404 Fehler. – Alasdair

+0

Okay, ich verstehe es. Vielen Dank!! – StaP