> Modules non standards > Django pour le développement web > Request et Response
Request et Response
Request
Principaux champs et méthodes d'un objet HttpRequest :
- scheme : http ou https.
- body : le corps brut de la requête.
- path : l'URL, sans les arguments après le '?'.
- get_full_path() : renvoie l'URL, y compris les arguments après le '?'.
- encoding : le charset de la requête, qui peut être None.
- GET : le dictionnaire des paramètres en GET, si c'est un get, mais en fait, c'est un objet QueryDict.
- POST : le dictionnaire des paramètres en POST, si c'est un post, mais en fait, c'est un objet QueryDict.
- COOKIES : le dictionnaire des cookies.
- FILES : le dictionnaire des fichiers attachés avec comme clef le name du champ input. En fait, c'est un objet MultiValueDict, et pour être correctement rempli, il faut que la forme ait : enctype='multipart/form-data'.
- META : dictionnaire des headers http, dans lequel on trouve notamment toutes les variables cgi classiques comme REMOTE_USER (si user authentifié), SERVER_NAME, etc ...
- session : un objet SessionStore qui contient les infos de session.
- get_host() : renvoie hôte:port
- is_ajax() : renvoie True si la requête a été faite par XMLHttpRequest.
Response
Principaux champs et méthodes d'un objet de la classe HttpResponse :
- constructeur : HttpResponse('mon contenu', content_type = 'text/plain;charset=utf-8', status = 200).
- set-cookie(name, value, max-age, expires = None, path = '/', domain = None) positionne un cookie :
- max-age est le temps d'expiration en secondes.
- expires est un objet de type datetime.
- si domaine défini à '.mydomain.com', le cookie sera valable sur toutes les machines du domaine.
- delete_cookie(name, path = '/', domain = None) : il faut indiquer le même path et le même domain que quand on a rajouté le cookie.
- write() : permet d'écrire la réponse.
- flush() : permet de vider le tampon d'écriture.
Sous-classes de HttpResponse :
- dans une view, on doit renvoyer un objet de type HttpResponse, mais on peut aussi renvoyer une de ses sous-classes.
- exemple de sous-classes :
- HttResponseRedirect('/new/path') : redirection vers un nouveau chemin (statut 302).
- HttpResponsePermanentRedirect('/new/path') : comme HttResponseRedirect, mais permanent (statut 301).
- HttpResponseBadRequest : comme une HttpResponse, mais renvoie un statut 400.
- HttpResponseNotFound : comme une HttpResponse, mais renvoie un statut 404.
- HttpResponseForbidden : comme une HttpResponse, mais renvoie un statut 403.
- JsonResponse : sous-classe qui facilite le codage des réponse de type JSON :
- JsonResponse(myDict) : réponse, avec le dictionnaire sérialisé en JSON.
- JsonResponse(myList, safe = False) : on peut utiliser autre chose qu'un dictionnaire à condition de mettre safe à False (car les vieux navigateurs pouvaient avoir leur javascript attaqué lors du parsin des listes).
- JsonResponse(myDict, encoder = myEncoder) : on peut donner un autre encoder JSON que celui par défaut DjangoJSONEncoder.
Copyright python-simple.com
programmer en python, tutoriel python, graphes en python, Aymeric Duclert