Peut-Python Demandes de la bibliothèque de Google App Engine?
Puis-je utiliser Les demandes sur Google App Engine? Je pense que cette bibliothèque est parfait pour créer un client REST.
Vous devez vous connecter pour publier un commentaire.
Puis-je utiliser Les demandes sur Google App Engine? Je pense que cette bibliothèque est parfait pour créer un client REST.
Vous devez vous connecter pour publier un commentaire.
Oui. Sur Google Appengine (version 1.9.18) les demandes version 2.3.0 DE la PRODUCTION (mais pas sur SDK) si vous avez de facturation activé, ce qui permet la prise en charge des sockets.
Mise à jour: à compter du 31 janvier 2017 Demandes de travail dans la production avec la version 2.9.1 dans la production. Toutefois, il ne fonctionne pas avec Google cloud SDK 141.0.0
demandes sur la Appengine SDK échoue avec tous https://demandes:
demandes de la version 2.4.1 échoue dans la production avec:
demandes de la version 2.5.1 échoue dans la production avec:
demandes de la version 2.3.0 de la production, mais peut causer des problèmes avec les Debians retiré SSLv3 de soutien dans le SDK (demandes 2.3.0 est livré avec son propre désormais obsolète urllib3). Comme solution de contournement, il est possible de supprimer la ligne contenant PROTOCOL_SSLv3 dans la source de la demande de urllib3 copie.
Info sur la prise en charge des sockets: https://cloud.google.com/appengine/docs/python/sockets/
ssl
de la bibliothèque dans l'app.yml résolu le problème pour moi! merciInstaller le
requests-toolbelt
de la bibliothèque:https://github.com/sigmavirus24/requests-toolbelt
Pour App Engine il pourrait être quelque chose comme:
pip install requests-toolbelt -t lib
(Voir: https://cloud.google.com/appengine/docs/python/tools/using-libraries-python-27#installing_a_library)
Puis ajouter:
Dans votre
main.py
ou l'équivalent.Modifier: cette solution est maintenant une partie de la documentation officielle: https://cloud.google.com/appengine/docs/python/issue-requests#issuing_an_http_request
(dans le
REQUESTS
onglet)Pas encore mais j'espère très bientôt. Soutien pour GAE est en cours d'élaboration - voir le numéro #498 (App Engine de Bugs).
Demandes utilise urllib3 qui à son tour utilise httplib qui est pris en charge sur GAE comme un wrapper pour urlfetch API. Bien que urllib3 utilise certains modules ne sont pas disponibles sur GAE cette utilisation est délibérément fait en option de sorte que urllib3 peut être utilisé sur GAE.
c'est désormais possible, je l'ai eu à travailler à l'aide de cette combinaison de solutions dans appengine_config.py:
def platform()
Non, dans un poste plus récente, les développeurs disent qu'ils ne prennent pas en charge GAE parce que c'est trop différent de python.
urlfetch()
limites, utiliser les socketsAfin de corriger les demandes travailler avec Google App Engine, mais aussi permettre à ma demande pour courir à l'extérieur de la FGA, j'ai ajouté le code suivant:
Oui, vous pouvez utiliser les demandes de module.
Les BPC ne prend pas en charge l'utilisation de Demandes de la bibliothèque de la boîte. Donc, nous aurons à faire quelques tweeks pour le faire fonctionner.
Pour déployer une application sur le Google App Engine, nous avons besoin de faire un main.py(où les principaux python flacon se trouve l'application) et l'application.yaml(fichier de configuration nécessaire pour l'exécuter dans GCP).
Voici un exemple de code pour l'application.fichier yaml pour python 2.7 environnement
Nous devons maintenant configurer les demandes de bibliothèque à utiliser URLfetch en interne.
Pour utiliser demandes, nous avons besoin d'installer à la fois les demandes et les demandes de toolbelt à l'aide de la vendoring instructions. (https://cloud.google.com/appengine/docs/standard/python/tools/using-libraries-python-27#installing_a_library).
Fondamentalement, nous avons besoin d'installer nos bibliothèques personnalisées.
mkdir lib
pip install-t lib/(pip install-t lib/demandes)
Modifier l'appengine_config.py fichier et de fournir à votre répertoire de bibliothèque pour le vendeur.méthode add ().
Exemple appengine_config.py fichier
Une fois installé, utilisez la requests_toolbelt.les adaptateurs.appengine module pour configurer les demandes d'utilisation de URLFetch.
Copiez le code ci-dessous pour le début de votre main.py fichier
(https://cloud.google.com/appengine/docs/standard/python/issue-requests)
Maintenant, nous pouvons facilement utiliser la demande de la bibliothèque pour faire des get/post demandes.
Test de votre application: