如何使用Django和Neo4j数据库创建GraphQLAPI?

2024-09-27 23:28:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在从事一个项目,需要使用Django服务器(Graphene Django)和Neo4J数据库制作GraphQLAPI。我在网上找了很多,但找不到任何有用的资源。如果有人能给出一个简单的流程示例或建议一些资源,请提供帮助


Tags: 项目django服务器数据库示例资源流程建议
2条回答

我正在运行一个类似的设置,但是您在这里谈论了很多事情,如果您分解这些概念,可能会更容易理解

如果您只考虑在Python中运行Neo4j(独立于Django),则最容易理解

Neo4j/Python

  1. 运行Neo4j,并能够使用python连接到它(我使用py2neo)

我制作了一个制作neo4j flask应用程序的视频演示,从这里开始:https://www.youtube.com/watch?v=h8cyPIEfxQY&t=1215s

代码如下:https://github.com/elena/graph-fun/blob/master/notebook.ipynb

Django/石墨烯

  1. 让您的Django项目运行起来。在Django中设置graphene(注意,围绕graphene/graphQL是另一回事,但单独执行此步骤,确保您了解传统Django应用程序如何连接到graphene)

这里的一些神奇之处在于,我们使用GraphiQL来服务GraphQL端点:https://github.com/graphql/graphiql这通常会使您的生活更加轻松

这些文件:https://www.fullstacklabs.co/blog/django-graphene-rest-graphql

Python/Graphene/Neo4j

  1. 在Django项目中为Neo4j连接和语句制作一个模块/应用程序。这里需要注意的重要一点是:石墨烯不关心数据来自哪里。只需使用普通python graphene将任何数据发送到graphene schema.py

这是flask示例代码(https://github.com/elena/graph-fun/blob/master/app.py),但是您可以将Neo4j输出提供给GraphQL python模式

看,python(不是Django)石墨烯不关心数据来自何处:https://docs.graphene-python.org/en/latest/quickstart/

最后,您可以将其封装在django URL中,以使用graphiql提供服务

因此,您需要django graphene来为schema.py/url服务,但这会使事情变得过于复杂

然后,您需要后退一步,使用朴素的python graphene为Neo4j提供服务

至少这对我来说是有效的

我使用了所有3个堆栈:

  • 石墨烯Django与Postgresql DB
  • Django与Neo4j&;Postgresql
  • Neo4j

我可以告诉你事实上你可以有一个或另一个

Neo4j拥有自己的web界面自己的GraphQL API内置:

  • http://yourhost:7474/browser/
  • http://yourhost:7474/api/

对于Django要使用Neo4j,您可以使用neomodel或更好的Django版本:django-neomodel,即在引擎盖下使用neomodel

我实际上有一个单独的设置,我使用Django REST框架和我存储在Neo4j中的所有东西,我在REST端点而不是GraphQL中公开它

因此,我想说,您可以使用django neomodel来管理/处理您的数据,您只需决定是否要:

  • 使用Graphene Django公开包含的所有数据Neo4j
  • 使用Neo4j GraphQL API

不过有一件事……我仍然建议您拥有一个默认的\u数据库一个官方支持的数据库,用于处理与用户相关的数据和身份验证

作为个人评论:Neo4j是一项伟大的技术,但在事务速度方面(Postgres或其他关系数据库的应用领域)并不是最快的

<> P>毕竟,java上的技术,而不是C++上的,就像大多数其他数据库一样……所以请记住这一点。p>

祝你好运

相关问题 更多 >

    热门问题