Ich habe zwei Anwendungen auf zwei separaten Computern. Auf Computer A habe urls.py
ich in der Datei eine Zeile wie die folgende:
(r'^cast/$', 'mySite.simulate.views.cast')
Und diese URL funktioniert sowohl für mySite.com/cast/
als auch mySite.com/cast
. Aber auf Computer BI haben Sie eine ähnliche URL geschrieben wie:
(r'^login/$', 'mySite.myUser.views.login')
Aus irgendeinem Grund url mySite.com/login
funktioniert das / auf Computer B , mySite.com/login
hängt aber und wird nicht zurückgeleitet, mySite.com/login/
wie es auf Computer A der Fall ist. Gibt es etwas, das ich verpasst habe? Beide url.py
Dateien sehen für mich identisch aus.
python
django
django-urls
was was
quelle
quelle
Oder Sie können Ihre URLs folgendermaßen schreiben:
Das Fragezeichen nach dem abschließenden Schrägstrich macht es in regulärem Ausdruck optional. Verwenden Sie diese Option, wenn Sie aus bestimmten Gründen die Einstellung APPEND_SLASH nicht verwenden möchten.
quelle
APPEND_SLASH
, wenn sie es versehentlich ohne abschließenden Schrägstrich gesendet haben und Ihre urlconf MIT einem abschließenden Schrägstrich ist, erhalten sie eine Ausnahme über Datenverluste, wenn sie POST-Anforderungen umleiten./
) bereitstellen - schlampig, schlecht für Crawler, schwieriger zu warten, schwieriger auf ein neues System zu migrieren (da es so leicht zu übersehen ist)Dies verbessert die Antwort von @Michael Gendin. Seine Antwort dient der identischen Seite mit zwei separaten URLs. Es wäre besser,
login
automatisch umzuleitenlogin/
und diese dann als Hauptseite zu verwenden:quelle
Ich hatte auch das gleiche Problem. Meine Lösung wurde mit einem (| /) vor die Endzeile meines regulären Ausdrucks gesetzt.
url(r'^artists/(?P[\d]+)(|/)$', ArtistDetailView.as_view()),
quelle
Fügen Sie einen Schrägstrich ohne Weiterleitung hinzu und verwenden Sie ihn anstelle von CommonMiddleware in den Einstellungen, Django 2.1:
Fügen Sie Ihrem Haupt-App-Verzeichnis middleware.py hinzu :
quelle
Ich hatte das gleiche Problem. In meinem Fall war es ein veralteter Rest einer alten Version in urls.py vor statischen Dateien:
MEDIA_URL war leer, daher stimmte dieses Muster mit allem überein.
quelle