6.3. Données d'environnement

L'accès à l'environnement HTTP est disponible à travers des variables globales disponibles dans l'espace de noms du script :

  1. Variables en lecture seule
    • REQUEST_HANDLER est un objet qui repréente la requête ; un attribut utile est client_address, un tuple à 2 éléments avec l'adresse IP et le port du client, par exemple ('127.0.0.1', 1825)
    • ENVIRON est un dictionnaire avec les variables d'environnement CGI : SERVER-SOFTWARE, REQUEST-METHOD, QUERY-STRING,, etc.
    • HEADERS est un dictionnaire avec les entêtes HTTP envoyées par le navigateur : la clé est le nom de l'entête, la valeur est la valeur de l'entête. Par exemple HEADERS["accept-language"] donne la valeur de l'entête accept-language
    • ACCEPTED_LANGUAGES est une liste des langues acceptées par le navigateur de l'utilisateur, ordonnées par préférence. Les éléments sont des chaînes de 2 caractères qui identifient la langue, selon la codification ISO 639 codification (en pour l'anglais, fr pour le français, etc)
    • COOKIE est un objet SimpleCookie (dans le module Cookie de la distribution standard) semblable à un dictionnaire, qui stocke les cookies envoyées par le navigateur avec la requête HTTP (voir la section sur les cookies)
    • Role() est une fonction qui renvoie le rôle de l'utilisateur, tel que défini dans le canevas intégré de gestion des utilisateurs (voir le chapitre sur l' authentication)
    • THIS est une instance de la classe Target (dans k_target.py) qui représente le script courant
  2. Variables en lecture et écriture
    • SET_COOKIE est un autre objet SimpleCookie auxquels on peut affecter des clés et des valeurs qui seront stockées par le navigateur wen comme cookies (voir la section sur les cookies)
    • RESPONSE est un dictionnaire dans lequel vous définissez la valeur des entêtes de réponse qui seront envoyées au client. Ce dictionnaire est insensible à la casse des clés : RESPONSE['Content-type'] et RESPONSE['CONTENT-type'] donnent le même résultat

La liste des noms intégrés est décrite dans la section espace de noms