【问题标题】:how can we run google app engine with python3 with ndb on local我们如何在本地使用带有 ndb 的 python3 运行谷歌应用引擎
【发布时间】:2020-10-12 00:29:17
【问题描述】:

我正在使用 python 谷歌应用引擎

你能告诉我,我如何在本地系统上使用 ndb 运行 python3 谷歌应用引擎?

帮帮我

https://cloud.google.com/appengine/docs/standard/python3

【问题讨论】:

    标签: python-3.x google-app-engine google-cloud-platform app-engine-ndb


    【解决方案1】:

    您可以简单地在本地创建数据存储的模拟器实例:

    gcloud beta emulators datastore start --project test --host-port "0.0.0.0:8002" --no-store-on-disk --consistency=1
    

    然后在主app文件的代码中使用:

    from google.cloud import ndb
    
    def get_ndb_client(namespace):
    
        if config.ENVIRONMENT != ENVIRONMENTS.LOCAL:
            # production
            db = ndb.Client(namespace=namespace)
        else:
            # localhost
            import mock
    
            credentials = mock.Mock(spec=google.auth.credentials.Credentials)
            db = ndb.Client(project="test", credentials=credentials, namespace=namespace)
    
        return db
    
    ndb_client = get_ndb_client("ns1")
    

    【讨论】:

      【解决方案2】:

      请试试这个

      转到服务帐号https://cloud.google.com/docs/authentication/getting-started

      创建 json 文件

      并添加安装这个 pip

      $ pip install google-cloud-ndb
      

      现在打开 linux 终端

      export GOOGLE_APPLICATION_CREDENTIALS="/path/to/credentials.json"
      

      如果窗口则打开命令提示符

      set GOOGLE_APPLICATION_CREDENTIALS=C:\path\to\credentials.json
      

      在终端/命令提示符下在 python3 中运行此代码

      from google.cloud import ndb
      client = ndb.Client()
      with client.context():
          contact1 = Contact(name="John Smith",
                             phone="555 617 8993",
                             email="john.smith@gmail.com")
          contact1.put()
      

      在您的数据存储中查看此结果.. Google 控制台

      【讨论】:

      • 我如何在这个中使用命名空间?
      【解决方案3】:

      App Engine 是 Google Cloud Platform 提供的无服务器服务,您可以在其中部署应用程序并配置实例的 CPU、内存、扩展方法等云资源。这将为您提供运行应用程序的架构。

      此服务不适用于本地环境。相反,托管(理想情况下)已在本地环境中测试过的应用程序是一个不错的选择。

      假设:您在本地使用 App Engine 运行具有 Datastore 依赖项的 Django 应用程序,您在本地运行具有 Datastore(和其他)依赖项的 Django 应用程序然后 准备好后将其部署到 App Engine。

      大多数 GCP 服务都有其客户端库,因此我们可以通过代码与它们进行交互,即使在本地环境中也是如此。您询问的ndb 属于 Google Cloud Datastore,可以安装在 Python 环境中:

      pip install google-cloud-ndb
      

      安装后,您就可以在本地与 Datastore 进行交互了。请在Datastore Python Client Library 参考中找到有关设置凭据和代码 sn-ps 的详细信息。

      希望这有帮助! :)

      【讨论】:

      • 我如何在这个中使用命名空间?
      • 我认为最后一个问题与另一个问题有关,我建议创建一个包含更多详细信息的新 StackOverflow 问题。
      猜你喜欢
      • 2020-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-10
      • 1970-01-01
      • 1970-01-01
      • 2013-02-26
      • 2015-05-15
      相关资源
      最近更新 更多