Modèles URL dans Django - Différentes combinaisons
-
21-09-2019 - |
Question
Je trouve qu'il est difficile de comprendre exactement ce qui est passé à la méthode de patterns
dans Django.
Vous voyez, je suis généralement mon urls.py
comme:
urlspatterns = patterns('example.views',
(r'/$','func_to_call'),
)
Alors dans func_to_call
je recevrais tout ce que je veux de l'objet request
à l'aide request.path
. Cependant, sur une deuxième prise, il est vraiment tout à fait horrible que j'ignore le slickness de Django pour un plus, de manière moins propre de l'analyse syntaxique - la raison étant que je ne comprends pas ce qu'il faut faire
Disons que vous avez 3 serveurs que vous mettez votre application Django, qui ont tous un nom de domaine et une certaine variation comme server1/djangoApplicationName/queryparams
, server2/application/djangoApplicationName
et server3/queryparams
. Qu'est-ce que sera adopté le urlpattern
? L'ensemble url? Tout après le nom de domaine?
La solution
Le regex URLconf ne voit que la partie de chemin de l'URL, la barre oblique initiale dépouillée. Les paramètres de requête ne sont pas abondés par l'URLconf, vous accédez à ces via request.GET dans votre vue. Ainsi, vous pourriez écrire un modèle comme celui-ci:
urlpatterns = patterns('myapp.views',
url(r'^myapp/something/$', 'something_view_func')
)
Le documentation a plus d'exemples et de détails.