Как получить доступ к удаленному хранилищу данных при запуске dev_appserver.py?

Я пытаюсь запустить веб-сервер localhost, который имеет удаленный доступ api к удаленному хранилищу данных, используя метод remote_api_stub ConfigureRemoteApiForOAuth .

Я использую следующий документ Google для справки, но считаю его довольно редким:

https://cloud.google.com/appengine/docs/python/tools/remoteapi

Я считаю, что мне не хватает бита проверки подлинности, но я не могу найти конкретный ресурс для руководства. Что было бы самым простым способом, учитывая следующий пример кода, для доступа к удаленному хранилищу данных при запуске dev_appserver.py ?

 import webapp2 from google.appengine.ext import ndb from google.appengine.ext.remote_api import remote_api_stub class Topic(ndb.Model): created_by = ndb.StringProperty() subject = ndb.StringProperty() @classmethod def query_by_creator(cls, creator): return cls.query(Topic.created_by == creator) class MainPage(webapp2.RequestHandler): def get(self): remote_api_stub.ConfigureRemoteApiForOAuth( '#####.appspot.com', '/_ah/remote_api' ) topics = Topic.query_by_creator('bill') self.response.headers['Content-Type'] = 'text/plain' self.response.out.write('<html><body>') self.response.out.write('<h1>TOPIC SUBJECTS:<h1>') for topic in topics.fetch(10): self.response.out.write('<h3>' + topic.subject + '<h3>') self.response.out.write('</body></html>') app = webapp2.WSGIApplication([ ('/', MainPage) ], debug=True) 

One Solution collect form web for “Как получить доступ к удаленному хранилищу данных при запуске dev_appserver.py?”

Этот запрос получил много, просто потому, что вы не можете использовать библиотеки движков приложений вне SDK. Однако есть и более простой способ сделать это из SDK App Engine.

Я бы использовал gcloud для этого. Вот как это настроить:

Если вы хотите взаимодействовать с облачными хранилищами Google в среде App Engine, вы можете использовать Gcloud ( https://googlecloudplatform.github.io/gcloud-python/stable/ ) для этого.

Вам нужна учетная запись службы в вашем приложении, а также загрузите файл учетных данных JSON. Вы делаете это на консоли приложения на вкладке authentication . Создайте его, а затем загрузите. Назовите его client_secret.json или что-то в этом роде.

С ними, как только вы установите соответствующие пакеты для gcloud с помощью pip, вы сможете делать запросы, а также записывать данные.

Вот пример аутентификации пользователя для использования библиотеки:

 from gcloud import datastore # the location of the JSON file on your local machine os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "/location/client_secret.json" # project ID from the Developers Console projectID = "THE_ID_OF_YOUR_PROJECT" os.environ["GCLOUD_TESTS_PROJECT_ID"] = projectID os.environ["GCLOUD_TESTS_DATASET_ID"] = projectID client = datastore.Client(dataset_id=projectID) 

Как только это будет сделано, вы можете делать такие запросы:

 query = client.query(kind='Model').fetch() 

На самом деле это очень просто. Любой, кто, как я это сделал бы! Приветствия.

  • Как я могу разобрать JSON в Google App Engine?
  • Google App Engine: не будет обслуживать статические активы с ошибкой ниже:
  • Выбор Java vs Python в Google App Engine
  • Использовать OAuth2 для аутентификации + совместимость с сервисом google.appengine.api.users
  • Как я могу просто изменить путь для всего пакета запросов в папке библиотек в моем проекте appengine
  • ImportError: нет модуля с именем apiclient.discovery
  • Неверное неравенство и упорядочение фильтра приложений
  • Создайте файл данных Pandas для облачного хранилища Google или BigQuery
  • Python - лучший язык программирования в мире.