当前位置: 首页 > 网络应用技术

Django如何添加Neo4J数据库?

时间:2023-03-06 23:56:33 网络应用技术

  简介:许多朋友询问了Django如何添加Neo4J数据库。本文的首席CTO笔记将为您提供详细的答案,以供所有人参考。我希望这对每个人都会有所帮助!让我们一起看看!

  步骤1:

  在您的django项目目录中修改settings.py文件,如下所示:

  其中,“ db_name'对应于'name'

  命令行提示符创建的数据库名称:注意:在Django使用数据库之前,您必须创建数据库,否则将报告错误。

  还有与“密码”相对应的“ passwd”

  这是您在MySQL中创建的用户名和密码。如果您有多个,只需随便填写一个。“ host”和“ port”默认情况下不能填写。

  出色:使用用户名和密码登录到mySQL方法:

  首先,您需要输入MySQL/bin目录,也可以在.bash_profile中设置环境变量:

  路径=/usr/local/bin:/usr/bin:/bin:/sbin:/sbin:/usr/sbin:/usr/usr/local/sbin:/usr/local/mysql/5.6.22/bin/

  在提示中输入MySQL -U用户名-P,然后在返回后输入PassWD。

  第2步:

  然后使用Python Manage.py SynCDB在Manage.py路径中尝试。结果将表明您找不到MySQLDB模块。为什么,因为python manage.py syncdb命令正常工作:

  1.查找可能需要在项目目录中的stentaim_apps Metal of Attectings.py中续订的应用程序。

  2.在每个应用程序目录中找到Models.py(关系定义文件),并更新数据库中的更改。

  说了很多话,模块mysqldb在上一个错误中意味着什么?

  首先给图片,然后解释:

  因为Python用于定义模型中的关系。当然,必须在数据库中使用它来形成SQL语句,因此必须有一些功能模块。

  来将Python语句转换为SQL语句。如果您使用SQLITE,因为SQLITE和转换模块已由Python构建,直接使用直接使用不会是错误的

  错误。但是“ MySQL语句转换模块”需要您手动加载,这些模块放在MySQL-Python中。

  我用pip安装了它:

  安装后,请使用Python Manage.py SynCDB为正常。

  我使用的系统是OS X,以下是MySQL默认安装路径

  /USR/local/cellar/mysql/5.6.22/

  如果您想知道数据库文件的放置位置,则可以在MySQL_Config文件中检查LDATA变量。该变量的值是默认数据库文件夹存储路径。在我的系统中,mysql_config的完整路径是:

  /USR/local/cellar/mysql/5.6.22/bin/mysql_config

  Django教程-01安装和使用

  在上面的文章中,引入了安装Django的方法。让我们谈谈在此处连接数据库。

  本文主要介绍坑和解决方案

  正常连接和初始化数据库的命令是

  执行此命令时,出现以下错误

  在调查一部分之后,当我配置数据库时,我设置了一层默认值并将其修改如下。

  然后,当您继续执行迁移时,您将报告以下错误

  该机器的环境是Mac计算机。在官方教程上操作时,发现使用MySQLClient安装的Python软件包将取决于MySQL或MySQL-CLIENT的安装,但是当我安装MySQL和MySQL-CLIENT时,我发现了解决方案。后来发现在settings.py文件中,添加了以下代码,即可以连接pymsql。

  或者可以在settings.py中添加代码__init__.py

  然后执行python manage.py迁移命令,以发现该表是成功创建的。新表不影响原始库的其他表。

  数据库

  #

  数据库= {

  '默认': {

  '引擎':'django.db.backends.sqlite3',

  'name':os.path.join(base_dir,'db.sqlite3'),

  },,

  'db1':{

  '引擎':'django.db.backends.postgresql_psycopg2',

  “名称”:'dbname1',

  '用户':'your_db_user_name',

  '密码':'yourpassword',

  选择“开始”菜单→程序→[管理SQL Server 2008]→[SQL Server Management Studio]命令,打开[SQL Server Management Studio]窗口,然后使用Windows或SQL Server身份验证来建立连接。

  在[对象资源管理器]窗口中展开服务器,然后选择[数据库]节点

  右 - 单击[数据库]节点,从pop -up快捷方式菜单中选择[新数据库]命令。

  执行上述操作后,[新数据库]对话框将弹出。对话框和左侧有3个选项,即[常规],[选项]和[文件组]。完成设置后这三个选项,数据库的创建已完成。

  输入数据库的名称,以在[数据库名称]中创建一个新数据库。例如,这是“新数据库”。

  在文本框中输入新数据库的所有者,例如sa.cording,以使用数据库,选择或禁用[全文索引]复选框。

  在[数据库文件]列表中包括两行,一个是数据库文件,另一个是日记文件。ADD或通过单击下面的[add]和[删除]按钮删除数据库文件。

  切换到[可选页面],您可以在其中设置数据库的排序规则,恢复模式,兼容性级别和其他属性。

  切换到[文件组]页面,您可以在此处添加或删除文件组。

  完成上述操作后,单击[确定]按钮以关闭[新数据库]对话框。在这一点上,成功创建了“新数据”数据库。可以在[Object Resource Manager中看到新构建的数据库] 窗户。

  一个快速的安息示例

  首先查看一些基本知识。如果没有服务API,Neo4J无法支持其他语言。该界面提供了一组基于JSON消息格式和全面的发现机制的RESTFUL Web服务。使用此界面的最快和最简单的方法在使用中是使用卷发:

  1234567891011121314

  $ curl {“扩展”:{},“ node”:“”,“ node_index”:“”,“ Relatess_Index”:“”,“ Extensions_info”:“”,“ Relatess_types”:“ Relatess_types”:“”“,“ cypher”:“”,“ Transaction”:“”,“ neo4j_version”:“ 2.0.0-m03”}

  从此端点返回JSON对象,以包括一组资源名称和Cypher端点,这些端点可以在URI下找到。接收Cyper请求并在消息加载中执行这些查询,并在HTTP响应中返回结果。

  正是这种REST API接口使现有的NEO4J驱动程序被建立。Py2Neo提供了这些REST资源的简单包装,这使Python应用程序开发人员可以在不考虑基础客户端服务器协议的情况下使用NEO4J。

  一个简单的应用程序

  为了积极验证py2neo,我们将重点放在建立一个易于存储名称和电子邮件地址的通讯录管理系统。我们自然使用节点来模拟每个独立实体,但要记住,neo4j没有类型的概念。从周围的关系和属性中推断出来。

  以下关系中的人以红色为例,电子邮件地址节点显示为蓝色。这些当然是纯粹的逻辑演示,但数据本身并没有差异。

  我们的应用程序将完成两个功能:添加新的联系信息并搜索完整的联系人列表。为此,我们将创建一个人-Type包装PY2NeonodoBject,这使我们能够进行基础处理并留下用户 - 级别的函数。上图中的根节点是指上图中的固定参考点。我们从这一点开始。

  让我们直接查看代码。BELOW是一个完整的小应用程序。此程序允许添加一个新名称以连接到一个或多个电子邮件地址,并提供了一种简便的方法来显示这些连接信息的命令行工具。没有参数的运行,显示模式,唯一的依赖项只需要本地未经启动的neo4j实例(实例)。

  12345678911112131415161719202222222727272727272727272729313333333333333941444444444444444449505555555555555960

  person”,0))用于电子邮件中的电子邮件:graph_db.create(node(email = email),rel(cls._root,“ email”,0),rel(person_node,“ email”,“ email”,0))return person(person_node))@classmedhod def get_all(cls):cls._root.match(“ person”)的人返回[person.end_node)] def __init __(天然,node)= node def def def __str def __str __ __(self)return self.name+”

  “ +”

  “ .join(“ {0}” .format(inselails中的电子邮件)@property def name(seld):return self._node [“ name”] @property def emails(seld):return [rel.end_node [rel.end_node [“ email”]对于self._node.match(“ email”)中的Rore]如果__name __ ==“ __ -main __”:: USAGE :: USAGE :: USAGE :: USAGE :: {0}添加名称电子邮件[email ...]”。格式(app))prop(“ {0} list” .format(app))sys.exit()方法= sys.argv [1]如果方法==“ add”:print(person.create(*sys.argv [2:]))elif method ==“ list”:for Person.get_all():print(person):打印(“未知命令”)

  在第09行中是第一个创建GraphDatabaseservice对象的PY2NEO代码。通过此,我们可以使用Neo4J Server访问大多数函数。换句话说,以下两行完全相等:

  123

  graph_db = neo4j.graphdatabaseservice()graph_db = neo4j.graphdatabaseservice(“”)

  第13行介绍了get_or_create_indexed_node的呼叫,该呼叫提供了一种在图形中创建固定参考点的优美方法。传统的neo4j索引允许节点和关系通过键值访问,并且在此代码中,我们使用关键字来连接关键字和关键字和关键字和关键字,带有root值的参考索引。在第一个执行中,将创建一个新节点,在后续执行中,将重复使用此节点(即root)。

  在第17行中,我们看到了推荐的节点和关系抽象标记,以及接受和使用节点和关系的创建方法。可以将任意抽象传递给该方法,并且该实体是在单个批次转换中创建的,并返回作为指定的列表的列表。提取节点由节点函数和某些属性表示。但是,抽象关系使用REL函数接收起始节点,类型和终止节点。在上下文中,其他节点,启动和终止节点可以集成并引用其他批处理处理中的其他节点。在我们的示例中,我们连接新创建的人节点的根节点,否则将用作项目0(项目0)。

  这次,我们以第24和38行的匹配方法和关系的形式相遇[@LESUS注意:Oschina代码行是有问题的。与本文中的第28和44行相对应]。它试图使用特殊条件集(集合设置))确定关系,然后使用列表(列表)返回它们。在这些示例中,从根节点和电子邮件关系开始到给定的人节点。包含匹配关键字。

  要注意的最后一件事是访问上面代码中的节点属性只是简单的方法之一。Py2Neo重写标准Python __getItem__和__setItem__,以促进通过Square Bracket Logos访问任何属性。这可以在第34行和第34行和38。[@lesus注意:对应于与本文相对应的第39和44行]

  总结

  我们这样做(代码线34和38),它显示了它如何快速,轻松地将Neo4J应用程序放在Java环境之外,还显示了PY2NEO如何通过REST API抽象大部分重量来抽象大多数沉重的重量。负担。此处的示例并不能解决唯一性,尽管唯一的索引和cyphercreate独特语句是根据函数提供的。django开发人员也可能想考虑一个层,例如NeoModel,该层表达了一个djangoesque Orm式层,在py2neo的顶层。

  最简单的方法是为数据库表创建模型。类似的特定方法。

  1.设置settings.py的数据库连接方法。

  2.在模型中设置数据库表的相应数据结构,该数据库表通常称为关系对象模型,因此称为模型,这是类。您可以使用django-addmin.py ... proce。似乎是这个命令。这是一个数据库检测命令,可以根据表自动生成模型代码。当然,如果您首先编写模型代码,则可以使用SynCDB命令来生成数据库表

  3.在urls.py中设置URL路径。当浏览器访问此路径时,您可以在相应的视图中打开函数

  4.看

  4.1结果= modelclass.objects.all()此命令可以取出所有记录

  4.2然后,您可以将结果直接传递到模板。模板示例。这是最合理的方法

  4.3在模板中{for Result%的颜色%}

  4.4 licols.field1/li

  就是这样。可能太厚了。您可以看到教程。

  结论:以上是为您编写的主要CTO注释,Django如何添加Neo4J数据库的相关内容。希望它对您有所帮助!如果您解决了问题,请与更多关心此问题的朋友分享?