URL-Muster in Django - Verschiedene Kombinationen
-
21-09-2019 - |
Frage
Ich finde es schwer zu verstehen, was genau die patterns
Methode in Django übergeben wird.
Sie sehen, ich habe in der Regel meine urls.py
wie:
urlspatterns = patterns('example.views',
(r'/$','func_to_call'),
)
Dann in func_to_call
würde ich alles bekommen, was ich aus dem request
Objekt will durch request.path
verwenden. Allerdings auf einem zweiten nehmen, es ist wirklich ganz schrecklich, dass ich für eine solche Djangos Schlüpfrigkeit bin ignorieren länger, weniger saubere Art und Weise zu parsen - der Grund ist, ich verstehe nicht, was zu tun ist
Angenommen, Sie haben 3-Server Sie setzen Ihre Django-Anwendung auf, die alle einen Domain-Namen und einige Variationen wie server1/djangoApplicationName/queryparams
, server2/application/djangoApplicationName
und server3/queryparams
haben. Was wird die urlpattern
geben bekommen? Die ganze url? Alles, was nach dem Domain-Namen?
Lösung
Die URLconf Regex sieht nur den Pfadabschnitt der URL, mit dem anfänglichen Schrägstrich abgezogen. Abfrageparameter werden nicht durch die URLconf abgestimmt, greifen Sie auf diejenigen, die über request.GET aus Ihrer Sicht. So dass Sie vielleicht ein Muster wie folgt schreiben:
urlpatterns = patterns('myapp.views',
url(r'^myapp/something/$', 'something_view_func')
)
Die Dokumentation hat weitere Beispiele und Details.