Afin de clarifier camflan de l'explication, supposons que vous avez
- la règle d'
url(regex=r'^user/(?P<username>\w{1,50})/$', view='views.profile_page')
- un en entrant demande d'
http://domain/user/thaiyoshi/?message=Hi
L'URL répartiteur de la règle de l'attraper par les parties de l'URL de chemin d'accès (ici "user/thaiyoshi/"
) et les passer à la fonction d'affichage le long avec l'objet de la requête.
La chaîne de requête (ici message=Hi
) est analysé et les paramètres sont stockés en tant que QueryDict
en request.GET
. Aucune autre correspondance ou le traitement de HTTP GET paramètres est fait.
Ce point de vue la fonction serait d'utiliser les deux pièces extraites à partir du chemin d'URL et d'un paramètre de requête:
def profile_page(request, username=None):
user = User.objects.get(username=username)
message = request.GET.get('message')
Comme une note de côté, vous trouverez la méthode de la requête (dans ce cas - "GET"
, et à la soumission des formulaires habituellement "POST"
) en request.method
. Dans certains cas, il est utile de vérifier qu'il correspond bien à ce que vous vous attendez.
Mise à jour: Lors de la décision d'utiliser l'URL ou le chemin des paramètres de requête pour la transmission de l'information, les éléments suivants peuvent vous aider:
- utilisez le chemin d'accès d'URL pour l'identification univoque des ressources, par exemple,
/blog/post/15/
(pas /blog/posts/?id=15
)
- utilisez les paramètres de requête pour changer la manière dont la ressource est affiché, par exemple,
/blog/post/15/?show_comments=1
ou /blog/posts/2008/?sort_by=date&direction=desc
- l'homme URLs, éviter l'utilisation de numéros d'identification et d'utiliser, par exemple, des dates, des catégories et/ou des limaces:
/blog/post/2008/09/30/django-urls/