Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
没有Neo4Django的Django和Neo4j_Django_Django Models_Neo4j_Neo4django - Fatal编程技术网

没有Neo4Django的Django和Neo4j

没有Neo4Django的Django和Neo4j,django,django-models,neo4j,neo4django,Django,Django Models,Neo4j,Neo4django,我正在用Neo4j(以及Postgres)构建一个Django应用程序,我发现这个Django集成叫做,我想知道是否可以只使用neo4restclient,比如,不使用Neo4django有什么缺点?仅使用neo4 rest客户端是否给了我更多的灵活性? 当我使用Neo4Django创建模型时,似乎在建模图形数据库和关系数据库之间没有区别。我遗漏了什么吗 谢谢 您完全可以使用neo4j rest客户端或py2neo,而无需使用neo4django。同样,您可以在任何时候使用Django、任何RE

我正在用Neo4j(以及Postgres)构建一个Django应用程序,我发现这个Django集成叫做,我想知道是否可以只使用neo4restclient,比如,不使用Neo4django有什么缺点?仅使用neo4 rest客户端是否给了我更多的灵活性? 当我使用Neo4Django创建模型时,似乎在建模图形数据库和关系数据库之间没有区别。我遗漏了什么吗


谢谢

您完全可以使用neo4j rest客户端或py2neo,而无需使用neo4django。同样,您可以在任何时候使用Django、任何REST客户机等任何其他数据库驱动程序

你会失去什么?DSL模型、内置查询(例如,
Person.objects.filter(name=“Mohamed”)
)、内置索引以及其背后的Lucene、Gremlin和Cypher。有些事情会容易得多——比如在节点上设置任意属性——但您需要了解更多关于Neo4j的工作原理

您还将丢失Django提供的用于neo4django的一些快捷方式,如
get\u object\u或_404()
,以及一些用于QuerySet的基于类的视图

你会得到什么?绝对功率超过DB,更容易调整DB性能。尽管neo4django并不像Python领域中的一些传统ORM那样是一个很好的库,但在功能与易用性之间的权衡是相似的

也就是说,这两者可以协同工作—您可以随时从neo4django下拉到底层REST客户机节点和关系。只需使用
model\u instance.node
从模型中获取底层的neo4j rest客户端节点对象,并从neo4django.db导入连接中使用
获取封装的neo4j rest客户端
GraphDatabase

关于你是否遗漏了什么:neo4django是为了重用一个功能强大的开发人员界面——Django ORM——所以它应该感觉类似于为Postgres编写模型。我过去写过一篇文章。我认为部分问题可能是lib没有突出显示对图形感兴趣的开发人员所期望的图形术语,比如遍历和模式匹配,而是将这些技术融入到Django查询中


我喜欢你的想法,或者想知道你想让图书馆做但它没有做的任何事情:)祝你好运

非常感谢你详尽而清晰的回答,马特!我不清楚我是否可以在model_instance.node上同时使用neo4j rest客户端和neo4django。听起来不错。我注意到的一点是,查询有点慢。此外,我希望只对Neo4j使用身份验证,而不是使用Postgres(或另一个关系数据库),因此,也许我会自己构建一个单独的可重用Django应用程序。你觉得值得吗?我的意思是,我很想使用
userena
,但是我会为一个用户提供三个模型(Django的模型、userena的模型和neo4django的模型)。嗯,什么样的查询对你来说太慢了?有一个很好的机会我可以做些什么:)我正在为Neo4j中的auth开发一个解决方案。我真正想要的是使用Django 1.5的可交换用户模型并保留图形中所有内容的
contrib.auth
替代品。不过,我还不确定什么时候能准备好。像
MyModel.objects.filter(username=“mo”)
这样简单的东西比我习惯的要慢。关于auth,这正是我的目标,替换
contrib.auth
。我现在使用的是
django userena
来处理所有的身份验证、登录、配置文件编辑和所有事情,但我确信这是一个混乱的解决方案。在我计划构建解决方案时,是否有可能为auth应用程序做出贡献?;)请事实上,如果你能做到这一点,就把它放到GitHub上,我很乐意为你做贡献,或者我们都可以做自己的事情,并比较各种方法。不过,我觉得你会比我先上它:)Re:过滤查询-你在用户名字段上设置了索引吗?我开始认为一个自定义的身份验证后端,类似于mongoengine的,+为基于neo4django的模型的social_auth做出贡献将是一个不错的选择。