17 votes

La variable Global Request est-elle disponible dans Python/Django ?

J'ai écrit un plugin qui envoie un signal pour activer mon code. Cependant, il n'envoie pas l'objet user-request à mon code. Je cherche un moyen de récupérer la requête en cours sans modifier l'application principale. Je ne trouve aucune documentation relative aux requêtes globales (telles que $_SERVER['REMOTE_ADDR'] en PHP).

Je voudrais savoir s'il existe une variable pour faire cela en Python/Django.

-1voto

Niklas B. Points 40619

Comme je le sais, vous définissez votre vue Django en utilisant un certain nombre de méthodes comme :

def detail(request, some_param):
  # [...]

Le paramètre request contient des informations sur la requête HTTP. request.META['HTTP_X_FORWARDED_FOR'] par exemple, renvoie l'adresse IP du client.

Si votre plugin a quelque chose à voir avec les requêtes, ses classes et fonctions seront probablement instanciées/appelées depuis votre vue. Cela signifie que vous devez lui passer le code courant request car cela n'a aucun sens d'avoir un objet mondial l'objet de la demande autour. En PHP, c'est possible, car chaque requête entraîne l'exécution de tout le code depuis le début, mais dans Django, les requêtes sont distribuées par un serveur et transmises dans le cadre de travail à l'aide des éléments suivants HttpRequest objets. Voir également este de la documentation de Django pour plus d'informations.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X