图数据库neo4j python 连接neo4j
时间: 2025-07-16 22:07:16 浏览: 7
<think>我们已知用户意图是使用Python连接Neo4j图数据库,需要了解连接方法、驱动使用或示例代码。
根据引用[1]至[4],我们可以总结出几种Python连接Neo4j的方法,包括使用官方驱动、全功能ORM等。
我们将按照以下结构回答:
1. 介绍连接Neo4j的常用方法(官方驱动、py2neo、neomodel、asyncneo4j等)
2. 分别给出每种方法的示例代码(参考引用[3]和[4]的示例)
3. 简要说明每种方法的特点和适用场景
4. 生成相关问题
注意:引用[3]和[4]提供了具体的代码示例,我们将基于这些示例进行展示,同时结合引用[1][2]中的分类。
由于引用[2]提到了四种方式,但引用中只详细列出了官方驱动(neo4j)和py2neo,其他两种(neomodel和asyncneo4j)没有详细代码示例,因此我们主要展示前两种,并简要提及其他两种。
步骤:
1. 官方驱动(neo4j)方式
2. py2neo方式
3. 其他方式(neomodel和asyncneo4j)简要介绍
注意:在代码示例中,我们使用引用[3]和[4]的代码,但需要确保与引用[2]的分类一致。</think>### Python连接Neo4j图数据库的方法详解
以下是Python连接Neo4j的三种主流方法,根据实际需求选择合适的方式:
#### 1. **官方驱动(neo4j)** [^1][^2]
**特点**:轻量级、原生支持Cypher查询、异步支持
```python
from neo4j import GraphDatabase
# 配置连接信息
uri = "bolt://localhost:7687" # 或neo4j://协议
username = "neo4j"
password = "your_password"
# 创建驱动
driver = GraphDatabase.driver(uri, auth=(username, password))
# 执行查询
with driver.session() as session:
result = session.run("MATCH (n:Person) RETURN n.name LIMIT 5")
for record in result:
print(record["n.name"])
# 关闭连接
driver.close()
```
#### 2. **全功能ORM(py2neo)** [^2]
**特点**:对象映射、高级API、事务管理
```python
from py2neo import Graph
# 直接创建图对象
graph = Graph("bolt://localhost:7687", auth=("neo4j", "your_password"))
# 执行Cypher查询
result = graph.run("MATCH (p:Person)-[r:KNOWS]->() RETURN p.name, type(r)")
for record in result:
print(f"{record['p.name']} 认识 {record['type(r)']}")
# 节点操作示例
from py2neo import Node
alice = Node("Person", name="Alice")
graph.create(alice)
```
#### 3. **领域驱动设计(neomodel)** [^2]
**特点**:Django式ORM、模式定义、数据验证
```python
from neomodel import config, StructuredNode, StringProperty
# 配置连接
config.DATABASE_URL = "bolt://neo4j:your_password@localhost:7687"
# 定义数据模型
class Person(StructuredNode):
name = StringProperty(unique_index=True)
# 操作节点
james = Person(name='James').save()
results = Person.nodes.filter(name__startswith='J')
```
#### 连接参数说明:
| 参数 | 说明 | 默认值 |
|------------|-------------------------------|-------------|
| `uri` | 协议+地址+端口 | 必填 |
| `auth` | 认证元组 (username, password) | (neo4j, "") |
| `encrypted`| 启用TLS加密 | True |
> **关键区别**:
> - 需要直接执行Cypher → 选官方驱动
> - 需要对象映射 → 选py2neo/neomodel
> - 需要异步支持 → 官方驱动+`asyncio`
---
阅读全文
相关推荐


















