J'essaie d'obtenir l'URL de base (nom d'hôte) du serveur sur lequel mon application appengine est en cours d'exécution.GAE self.request.environ et hôte du serveur
Ie quelque chose le long des lignes de
wsgiref.util.application_uri(self.request.environ)
Cependant, il est de retour PATH_INFO que je ne veux pas. Peut-être que je manque quelque chose, mais même cet article stipule que les informations sur le chemin doivent être omises. http://docs.python.org/library/wsgiref.html
http://9.latest.my-app.appspot.com
est essentiellement le long des lignes de ce que je suis en train de récupérer. Au contraire, il est de retour
http://9.latest.my-app.appspot.com/my/requested/path
Merci. J'espérais une solution intégrée à wsgiref plutôt que d'analyser l'URL demandée. Cela suffira cependant – Kyle
Ceci est très utile pour les cas autres que wsgi. Par exemple en utilisant [python-requests] (http://requests.readthedocs.org/) avec [BeautifulSoup] (http://beautiful-soup-4.readthedocs.org/) et en suivant les URLs relatives. Je vais cependant vous suggérer d'utiliser ** url.netloc au lieu de url.hostname **. Netloc inclut le numéro de port lorsqu'il diffère des valeurs par défaut de 80 et 443 respectivement pour http et https. –
Si vous parcourez [docs pour urlparse] (http://docs.python.org/2/library/urlparse.html) vous constaterez que "la valeur de retour est en fait une instance d'une sous-classe de tuple". Cela vous donne accès à 6 attributs clés. (Ceci inclut netloc, mais pas hostname, comme preuve supplémentaire de ma réclamation ci-dessus.) Cela vous permet d'obtenir votre base avec cet oneliner 'base = ': //'.join (urlparse (url) [0: 2])' si vous "d'urlparse importer urlparse". Si vous utilisez [python-requests] (http://requests.readthedocs.org/) obtenez l'URL comme suit: 'response.request.url' –