2016-05-12 14 views
-1

Ich versuche ein Tutorial auf Django namens Blog. Ich habe die folgende Struktur:django urls: "Django versuchte diese URL-Muster"

FirstBlog|FirstBlog 
settings 
urls 
__init__ 
etc 

blog 
templates | index.html 
migrations 
views.py 

manage.py 

Die view.py hat

from django.shortcuts import render 
from django.shortcuts import render_to_response 
from blog.models import posts 

def home(request): 
    return render('index.html') 

Die urls.py hat

from django.conf.urls import url 
from django.conf.urls import include 
from django.contrib import admin 

urlpatterns = [ 
    url(r'^blog', 'FirstBlog.blog.views.home',name='home'), 
] 

und ich bekomme diese Fehlermeldung:

Mit der URLconf in FirstBlog.urls definiert, Django hat das versucht URL-Muster in dieser Reihenfolge: ^blog [name='home']

Die aktuelle URL,, stimmte nicht mit diesen überein.

Ich kann nicht scheinen, es richtig zu machen .. Jede Hilfe wäre willkommen.

Danke,

+1

Mögliche Duplikat [django diese URL-Mustern versucht] (http://stackoverflow.com/questions/16157393/django-tried-these-url-patterns) –

Antwort

3

Sie sind für / URL anfordern und Sie eine solche Zuordnung nicht gespeichert haben. Das aktuelle Mapping ist für /blog. So wird es für die gleiche URL funktionieren. , d. H. Gehe zum Browser und Anfrage /blog

Wenn Sie es für / arbeiten müssen, dann ändern Sie die URLs entsprechend.

0

Sie tun dies in der falschen Weise! Versuchen Sie das unter Verwendung von TemplateView aus klassenbasierten Ansichten, die der aktuelle Standard aus Django-Ansichten sind.

Überprüfen Sie die django Dokumentation: https://docs.djangoproject.com/en/1.9/topics/class-based-views/

verwenden am urls.py:

from django.conf.urls import url 
from django.views.generic import TemplateView 

urlpatterns = [ 
    url(r'^blog/', TemplateView.as_view(template_name="index.html")), 
] 

Und dann erstellen Sie einen Ordner templates in der Projektwurzel genannt (wie folgt aus: https://docs.djangoproject.com/en/1.9/intro/tutorial03/#write-views-that-actually-do-something) genannt index.html

+0

Habe das mit dem gleichen Fehler gemacht: Die aktuelle URL stimmt nicht mit diesen überein. (^ Blog /). Der Templates-Ordner befindet sich direkt unter meinem App-Verzeichnis, derselbe Ort, an dem views.py, models.py, der Ordner Migrationen usw. ist. Nochmals vielen Dank. – user2332994

1

in Ihrer Blog-App, erstellen Sie eine urls.py Datei und fügen Sie den folgenden Code, der die hom ruft e Ansicht.

Blog/urls.py

from django.conf.urls import url 
from . import views 

urlpatterns = [ 
    #url(r'^',views.home, name='home'), 

] 

dann in Ihrer Root-Urls-Datei, die auf FirstBlog/urls.py

from django.conf.urls import url, include 

from django.contrib import admin 

urlpatterns = [ 
    url(r'^blog/',include('blog.urls')), #when you visit this url, it will go into the blog application and visit the internal urls in the app 
] 

PS gefunden werden kann: Ihre Vorlagen in sein sollten Blog/templates/Blog/index.html

lesen this docs on templates zu verstehen, wie Django Vorlagen findet.

Dieser ist zu verstehen, wie Urls arbeiten Urls dispatcher