it-swarm.com.de

Seite 404 auf Django-Site nicht gefunden?

Ich folge dem Tutorial auf Djangos Seite, um eine einfache Umfrage-App zu erstellen. Django kann "//127.0.0.1:8000/polls" jedoch nicht auflösen, obwohl ich die Regex in mySite/urls.py definiert habe. Ich mache das in einer Virtualenv, mit dem neuesten Django (1.7). 

mySite/urls.py: 

from Django.conf.urls import patterns, include, url
from Django.contrib import admin

urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
url(r'^polls/', include('polls.urls')),
)

mySite/polls/urls.py:

from Django.conf.urls import patterns, url
from polls import views

urlpatterns = patterns('',
url(r'^$', views.index, name='index'), 
)

mySite/polls/views.py:

from Django.shortcuts import render
from Django.http import HttpResponse
def index(request):
    return HttpResponse("Hello, world. You're at the polls index.")

mySite/settings.py:

 ...
 INSTALLED_APPS = (
'Django.contrib.admin',
'Django.contrib.auth',
'Django.contrib.contenttypes',
'Django.contrib.sessions',
'Django.contrib.messages',
'Django.contrib.staticfiles',
'polls',
 ) 
  ....
 ROOT_URLCONF = 'mySite.urls'

Der Fehler bekomme ich:

Using the URLconf defined in mySite.urls, Django tried these URL patterns, in this order: ^admin/  
The current URL, polls, didn't match any of these.
30
jerryh91

Ich hatte das gleiche Problem. 

Es stellte sich heraus, dass ich wegen der mehreren Verzeichnisse mit dem Namen "mysite" verwirrt war. 

Ich habe fälschlicherweise eine urls.py-Datei im Stammverzeichnis "mysite" (die "manage.py" enthält) erstellt und dann den Code von der Website eingefügt. 

Um dies zu korrigieren, löschte ich diese Datei, ging in das Verzeichnis mysite/mysite (das "settings.py" enthält), änderte die vorhandene Datei "urls.py" und ersetzte den Code durch den Tutorial-Code.

Vergewissern Sie sich kurz gesagt, dass sich Ihre urls.py-Datei im richtigen Verzeichnis befindet.

65
ZakJ

Django kann 127.0.0.1:8000/polls nicht auflösen, da die URL-Konfiguration als r'^polls/' definiert ist. 

Übliche Problemumgehung:

mySite/urls.py:

from Django.conf.urls import patterns, include, url
from Django.contrib import admin

urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
url(r'^polls/', include('polls.urls')),
)

Note: Wenn Django auf include () trifft, hackt es den Teil der URL ab, der mit diesem Punkt übereinstimmt, und sendet den verbleibenden String zur weiteren Verarbeitung an die enthaltene URLconf.

mySite/polls/urls.py:

from Django.conf.urls import patterns, url
from polls import views

urlpatterns = patterns('polls.views',
url(r'^$', 'index', name='index'), 
)

Note: Anstatt diesen Eintrag für jeden Eintrag in urlpatterns einzugeben, können Sie das erste Argument der pattern () - Funktion verwenden, um ein Präfix anzugeben, das auf jede Ansichtsfunktion angewendet werden soll.

Antwort Wenn

Wenn Sie auf 127.0.0.1:8000/pollszugreifen möchten, beachten Sie: ohne nachstehenden Schrägstrich 

verwenden Sie View-basierte URL

url(r'^polls', 'polls.views.index', name='index'),

So können Sie jetzt auf 127.0.0.1:8000/polls ohne nachstehenden Schrägstrich zugreifen.

8
Raja Simon

Sie greifen auf http://ihredomain.com/ zu und haben keine URL für "/" definiert.

Sie haben zwei Möglichkeiten:

  1. Wenn Sie auf die Indexseite Ihrer Umfrageanwendung zugreifen möchten, müssen Sie die URL eingeben: yourdomain.com/polls

  2. Sie können auch Ihre mySite/urls.py -Datei ändern, um nur von yourdomain.com darauf zuzugreifen

    from Django.conf.urls import patterns, include, url
    
    from Django.contrib import admin
    urlpatterns = patterns('',
    
    url(r'^admin/', include(admin.site.urls)),
    
    url(r'^$', include('polls.urls')),
    
    )
    
3
Emily

Um die Antwort für Anfänger zu klären, die dieses Problem haben, indem Sie das Lernprogramm befolgen, befindet sich die URL-URL des Projektstamms im selben Ordner wie settings.py. Dies ist:

 mysite/mysite/urls.py

Stellen Sie einfach sicher, dass Import 'Include' ist. Der Code sieht so aus:

from Django.conf.urls import include, url
from Django.contrib import admin

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^polls/', include('polls.urls')),
]

Also in mysite/mysite/settings.py:

Die Zeile sollte sein:

ROOT_URLCONF = 'mysite.urls'

Sie müssen keine neue neue URL-URL erstellen. 

2
jwndev

Sie legen den Ordner "urls.py" in den äußeren Ordner "MySite" ab. Sie sollten ihn in den inneren Ordner "mySite/urls.py", aber "mySite/mySite/urls.py" einfügen:

stieß auf den gleichen Fehler, als ich das Tutorial machte

1
duyinhao

Abhängig davon, wo Sie Ihre ROOT urls.py ablegen, stellen Sie Ihre ROOT_URLCONFIG entsprechend ein. Wenn Sie sie in Ihrem äußersten Ordner mit manage.py haben, ist "urls" in Ordnung. Wenn Sie es in einem anderen Ordner haben, müssen Sie ".urls" machen.

Dank für die Antwort an jerryh91

Weitere Informationen zur Funktionsweise finden Sie unter Wie Django eine Anfrage verarbeitet

1
javidazac

Eine andere Möglichkeit, auf 127.0.0.1:8000/polls zuzugreifen, besteht darin, den Browser umzuleiten, wenn auf 127.0.0.1:8000 zugegriffen wird. Dies geschieht durch Bearbeiten von .../mysite/mysite/urls.py wie folgt:

from Django.conf.urls import include, url
from Django.contrib import admin
from polls import views

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^polls/', include('polls.urls', namespace='polls')),
    url(r'^$', views.index, name='index'),
]
1
Muhammad Yousaf

ich hatte das gleiche Problem und löste es durch Hinzufügen von/polls nach http: // server: port / und so sieht die endgültige Adresse im Server aus wie: http: // server: port/Umfragen

0
Nishat Ahmed

2017-10-05_12: 03 ~/mysite/mysite
$ vi urls.py 2017-10-05_12: 04 ~/mysite/mysite
$ cd ../..2017-10-05_12:04 ~
$ mv mysite SENSIBLE_NAME_Django_ROOT

0
user50619

In meinem Fall war es ein dummer Fehler. Ich wollte das Plugin Django-tinymce einbinden und testen. Nach dieser Anleitung habe ich Schritt 3 ausgeführt und die Variable in den Pfad exportiert. Als der Server wieder lief, erhielt ich den nicht gefundenen Fehler mit der Meldung:

Mit der in testtinymce.urls definierten URLconf hat Django diese URL-Muster in der folgenden Reihenfolge ausprobiert: ....

Aber ich wusste nicht genau, was es war, bis ich mich daran erinnerte, die Variable exportiert zu haben. Django_SETTINGS_MODULE

laufen unset Django_SETTINGS_MODULE im Terminal hat mein Problem gelöst. Hoffe, dass es auch jemandem hilft.

0
pbalazek

Fügen Sie die folgende Zeile in Ihren Mysite/urls.py ein.

url(r'^$', views.index, name='index'),

und prüfe. Wenn Sie Ihr Projekt richtig erstellt haben, sollte es funktionieren. Andernfalls könnte es vorkommen, dass mehr als eine Datei so verwirrt war.

0
srilekha.bikki

Tatsächlich besteht das Problem darin, dass Sie das nicht bemerkt haben mysite/urls.py und polls/urls.py sind zwei verschiedene Dateien und Sie haben polls/urls.py modifiziert, anstatt mysite/urls.py einzusetzen Die Datei urls.py im Ordner ... mysite\mysite.

0