在本地主机上运行数据存储模拟器(数据存储模式下的Python3 Firestore)

时间:2019-03-21 04:57:01

标签: python-3.x google-cloud-datastore datastore

几个小时后,尝试使用docshere的资源在localhost上运行数据存储区模拟器,并且仍然在本地计算机上运行凭据时遇到问题(为什么localhost上的凭据!?不知道呢!)的,我感到非常难过,知道有本地数据存储没有图形用户界面就像我们曾经有dev_appserver.py的Python 2.7,我的的终于得到了找出所有数据存储写和查询测试,将它们实际保存到实际的数据存储中:(!幸运的是,它不是产品。

所以..

  1. 如果有人有明确的步骤在本地运行数据存储区模拟器(以数据存储区模式运行 Python3 firestore ),而无需同步/写入/读取实际的数据存储区 -localhost!非常感谢
  2. 我们不再需要模型文件吗?没有NDB了,所有写入操作,查询操作似乎都以字典类型see here发生,而没有属性类型( StringProperty(),IntProperty()等的预先定义。)。 。从NDB结构过渡到新的Python 3方法有什么好的指南吗?在这里寻找一种使事情井井有条的方法。

更新#1 : 关于问题#1,显然,设置以下env变量允许在localhost中运行数据存储,并且 not 写入项目实际数据存储,这是所需的行为。我必须在python环境中使用python main.py来运行本地服务器的同一终端/命令提示符下运行它们。将它们设置在另一个终端/命令行上对我不起作用。

要自动设置它们,请按照docs

使用以下命令

$ gcloud beta emulators datastore env-init > set_vars.cmd && set_vars.cmd

这将设置以下变量

$ set DATASTORE_DATASET=<project-id>
$ set DATASTORE_EMULATOR_HOST=localhost:8081
$ set DATASTORE_EMULATOR_HOST_PATH=localhost:8081/datastore
$ set DATASTORE_HOST=http://localhost:8081
$ set DATASTORE_PROJECT_ID=<project-id>

重要说明:如果您要在终端1中运行模拟器,并从终端2在本地运行应用,则还需要在其中设置环境变量DATASTORE_EMULATOR_HOST,以告诉您的应用在运行之前使用本地数据存储区您的应用python main.py

$ set DATASTORE_EMULATOR_HOST=localhost:8081
$ python main.py

0 个答案:

没有答案