没有Neo4Django的Django和Neo4j

标签 django django-models neo4j neo4django

我正在使用Neo4j(以及Postgres)构建Django应用程序,我发现了这个名为neo4django的Django集成,我想知道是否有可能仅使用neo4restclient,例如,不使用Neo4django的缺点是什么?仅使用neo4-rest-client是否可以给我带来更多的灵活性?
当我使用Neo4Django创建模型时,对图形数据库和关系数据库进行建模似乎没有什么区别。我有什么想念的吗?

谢谢!

最佳答案

您绝对可以使用neo4j-rest-client或py2neo进行操作,而无需使用neo4django。同样,您可以随时使用Django,任何REST客户端等使用所需的任何其他数据库驱动程序。

你会输什么?模型DSL,内置查询(例如Person.objects.filter(name="Mohamed")),内置索引以及其后的Lucene,Gremlin和Cypher。有些事情会容易得多-例如在节点上设置任意属性-但您需要了解有关Neo4j如何工作的更多信息。

您还将失去Django提供的与neo4django一起使用的一些快捷方式,例如get_object_or_404()和一些与查询集一起使用的基于类的 View 。

你会得到什么?数据库具有绝对的功能,并且可以更轻松地调整数据库性能。尽管neo4django的lib并不像Python领域的一些传统ORM那样好,但是在权衡提供便利性方面的权衡是相似的。

就是说,两者可以一起工作-您可以随时从neo4django拖放到基础REST客户端节点和关系。只需使用model_instance.node从模型中获取底层的neo4j-rest-client节点对象,然后使用from neo4django.db import connection获得包装的neo4j-rest-client GraphDatabase

关于是否缺少某些东西:neo4django的编写是为了重复使用强大的开发人员界面Django ORM,因此它的感觉类似于为Postgres编写模型。我过去写过bit about that odd feeling。我认为部分问题可能是lib没有突出显示图术语,这是新的图感兴趣的开发人员所期望的(例如遍历和模式匹配),而是将这些技术穿着Django查询衣服。

我会喜欢您的想法,或者想知道您想让图书馆做的所有事情都没有做的事情:)祝您好运!

关于没有Neo4Django的Django和Neo4j,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14871775/

相关文章:

python - 内化设置语言重定向 View 。如何重定向到同一页面?

python - Dokku:setuidgid:致命:无法运行gunicorn:文件不存在

javascript - 合并关系并不总是有效(延迟)

python - 未选中时未提交 Django 复选框

python - 相互依赖的 Django 应用程序的循环导入问题

python - Django 模型,使用 auth_group 作为 ForeignKey

python - Django 身份验证模型错误 : name 'User' is not defined

python - 如何在 Django 中创建对象队列?

graph - JUNG 循环树布局

apache-spark - GraphFrames 主题搜索的边缘属性过滤器不起作用