一个Django库,用于从python3运行时连接到Google云数据存储。

django-gcloud-connectors的Python项目详细描述


Django GCloud连接器(gcloudc)

注意:此项目现在位于GitLab

这个项目的目标是为Google云创建Django数据库连接器/后端。在

目前它包含一个用于Google云数据存储(Firestore模式下的数据存储)的连接器 但在未来,它还可能包括一个Firestore连接器,甚至是一个MemoryStore连接器。在

这是Djangae project中数据存储连接器的延续 但在python3上转换为使用Cloud Datastore API。在

如果您有兴趣提交修补程序,请参阅CONTRIBUTING.md


寻求商业支持?在

Potato为其所有开源项目提供商业支持,我们可以根据您的需要定制支持包。在

如果您对商业支持、培训或咨询感兴趣,请拨打opensource@potatolondon.com联系我们


运行测试

$ pip3 install --user tox
$ tox

引擎盖下的毒物检测结果./manage.py test。要将参数传递给这个命令,只需用双连字符将它们分开。e、 g

^{pr2}$

云数据存储模拟器自动启动

gcloudc为runservertest命令提供重写 启动和停止云数据存储模拟器实例。要启用此功能,请在INSTALLED_APPS设置的开头添加gcloudc.commands。在

释放过程

发布到pypi由GitLab CI管理。要创建新版本,请创建相关标记 把它推到gitlab遥控器。但首先你应该做一些版本的摆弄。。。在

1. Update the version in setup.py to the new version by removing the 'a' suffix (most likely)
2. Commit this change
3. Run `git tag -a X.Y.Z -m "Some description"
4. Run `git push origin master && git push --tags`
5. Open setup.py again, bump to the *next* release version, use an 'a' suffix
6. Run `git commit -am "Bump to alpha version" && git push origin master`

这将触发将在中发布包的管道测试.pypi.org. 如果成功,那么可以手动触发同一管道上的作业publish to prod pypi,以部署到正式的pypi注册表。在

注意事项

强烈建议在使用这个ORM后端之前阅读云数据存储API文档。了解数据存储 vs SQL将有助于避免意外惊喜!在

Google云数据存储是传统SQL数据库的not,因此数据存储后端不支持 Django ORM的所有功能(尽管它支持大多数功能)。还有,有些事情并不总是这样 你会料到的。由于数据存储是一个非SQL数据库,因此基本上不支持依赖于跨表查询或聚合的任何内容。在

以下是一些限制和差异:

  • 我们提供专门的atomic()装饰器,包括对“独立”事务的支持
  • 不支持保存点,嵌套的atomic()块实际上是一个无操作
  • Django的atomic()修饰符将不起作用
  • 不支持select_related(),尽管prefetch_related()可以工作
  • 不支持跨表排序
  • 在atomic()块中最多只能读取或写入500个实体
  • 不支持聚合查询
  • 查询只能包含一个不等式运算(gt,lt,lte,gte,isnull=False),并且resultset必须按要测试不等式的字段排序

当然,这样做的好处是,您可以构建Django应用程序,实现近乎无限的数据可伸缩性,并增加正常运行时间。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
序列化反序列化java。awt。颜色>java。木卫一。InvalidClassException   java禁用多个日期范围jDateChooser   java为什么我的特例apper会被扔进泽西/灰熊?   JavaIntelliJ比较两个覆盖率数据   java什么是servletsdefault。你怎么办?   单击几下libgdx后java按钮没有响应   使用java将字符串转换为JSONArray   文件系统在java中刷新fileSystemViewer   java如何在hibernate中避免脏检查   java奇怪的问题,带有分号和“无法解决…”   java将值从子面板传递到父面板   HTML JTextPane CSS的Java FontSizeAction   java文件代码神秘地变成了一堆(0000)