1234567891011121314151617181920212223242526272829303132333435 |
- from flask import current_app
- from neo4j import GraphDatabase
- from neo4j.exceptions import ServiceUnavailable
- class Neo4jDriver:
- def __init__(self):
- self._driver = None
-
- def connect(self):
- if not self._driver:
- self._driver = GraphDatabase.driver(
- current_app.config['NEO4J_URI'],
- auth=(current_app.config['NEO4J_USER'], current_app.config['NEO4J_PASSWORD']),
- encrypted=current_app.config['NEO4J_ENCRYPTED']
- )
- return self._driver
-
- def close(self):
- if self._driver:
- self._driver.close()
- self._driver = None
-
- def verify_connectivity(self):
- try:
- self.connect().verify_connectivity()
- return True
- except ServiceUnavailable:
- return False
-
- def get_session(self):
- """获取 Neo4j 会话"""
- return self.connect().session()
- # 单例实例
- neo4j_driver = Neo4jDriver()
|