Heim  >  Artikel  >  Backend-Entwicklung  >  Django hat einen Resolver404({\"tried\": tryed, \"path\": new_path}) Fehler. Was ist los?

Django hat einen Resolver404({\"tried\": tryed, \"path\": new_path}) Fehler. Was ist los?

PHPz
PHPznach vorne
2024-02-29 20:10:09608Durchsuche

Django hat einen Resolver404({\tried\: tryed, \path\: new_path}) Fehler. Was ist los?

Der Grund für den Fehler

Dies wird normalerweise dadurch verursacht, dass das in Django definierte URL-Muster nicht mit der angeforderten URL übereinstimmt. Wenn beispielsweise in der URLconf von DjanGo ein URL-Muster definiert ist, die URL, auf die Sie zugreifen möchten, jedoch nicht mit diesem Muster übereinstimmt, tritt ein Resolver404-Fehler auf.

Eine Problemumgehung könnte darin bestehen, sicherzustellen, dass die URL-Muster in der URLconf korrekt definiert sind und dass die angeforderte URL mit diesen Mustern übereinstimmt. Sie können auch die log-Funktion von Django verwenden, um eine Liste der URL-Muster anzuzeigen, die abgeglichen wurden, um das Problem zu beheben.

So beheben Sie das Problem

Um den Resolver404-Fehler zu beheben, müssen Sie die folgenden Schritte ausführen:

Stellen Sie sicher, dass das URL-Muster in Djangos URLconf korrekt definiert ist. Stellen Sie sicher, dass jedes URL-Muster über eine entsprechende Ansichtsfunktion verfügt, und stellen Sie sicher, dass jede Ansichtsfunktion über ein entsprechendes URL-Muster verfügt.

Stellen Sie sicher, dass die angeforderte URL mit dem in der URLconf definierten URL-Muster übereinstimmt. Wenn die angeforderte URL keinem der definierten URL-Muster entspricht, tritt ein Resolver404-Fehler auf.

Verwenden Sie die Protokollierungsfunktion von Django, um eine Liste der URL-Muster anzuzeigen, die abgeglichen wurden. Dies kann Ihnen dabei helfen, URLs zu identifizieren, bei denen das URL-Muster nicht mit der Anfrage übereinstimmt, und so das Problem zu beheben.

Überprüfen Sie Ihren Code, um sicherzustellen, dass keine Tippfehler oder andere Fehler vorliegen. Wenn Sie Fehler finden, beheben Sie diese.

Wenn Sie das Problem immer noch nicht lösen können, können Sie versuchen, im Django-Forum oder in anderen Online-Communities um Hilfe zu bitten.

Verwendungsbeispiel

Das Folgende ist ein Beispiel, bei dem zwei URL-Muster in der URLconf definiert sind, die angeforderte URL jedoch nicht mit einem der Muster übereinstimmt, was zu einem Resolver404-Fehler führt:

# URLconf

from django.conf.urls import url

from . import views

urlpatterns = [
url(r'^articles/2003/$', views.special_case_2003),
url(r'^articles/(?P[0-9]{4})/$', views.year_arcHive),
]

# views.py

def special_case_2003(request):
return HttpResponse('2003')

def year_archive(request, year):
return HttpResponse(year)

# 请求的 URL

http://example.com/articles/2005/

In diesem Fall versucht Django, die angeforderte URL zu finden, aber nur das zweite URL-Muster, da es das zuletzt definierte ist. Django gibt einen Resolver404-Fehler zurück, da die angeforderte URL nicht mit dem ersten URL-Muster übereinstimmt.

Um dieses Problem zu lösen, können Sie das erste URL-Muster so ändern, dass es mit der angeforderten URL übereinstimmt, oder eine Ansichtsfunktion in „views.py“ hinzufügen, um die angeforderte URL zu verarbeiten.

Das obige ist der detaillierte Inhalt vonDjango hat einen Resolver404({\"tried\": tryed, \"path\": new_path}) Fehler. Was ist los?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:lsjlt.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen