完成安装嬴图Python SDK,设置一个运行的嬴图实例后,可以开始将您的应用连接到嬴图图数据库。
创建驱动程序并根据以下方法中的一种或两种进行配置,以建立与嬴图数据库的连接:
配置项的值优先由UltipaConfig
决定,其次是.env
。若配置项在两个配置方法中均未提及,则使用默认值。
代码配置连接
from ultipa import Connection, UltipaConfig
ultipaConfig = UltipaConfig()
# URI 示例: ultipaConfig.hosts = ["mqj4zouys.us-east-1.cloud.ultipa.com:60010"]
ultipaConfig.hosts = ["192.168.1.85:60061", "192.168.1.87:60061", "192.168.1.88:60061"]
ultipaConfig.username = "<username>"
ultipaConfig.password = "<password>"
Conn = Connection.NewConnection(defaultConfig=ultipaConfig)
response = Conn.test()
# The connection is successfully established if the code is 0
print("Code = ", response.status.code)
Code = 0
使用UltipaConfig
配置的驱动程序创建完成。请参考配置项使用UltipaConfig
为全部可配置项配置连接详情。
Connection.NewConnection()
方法用于获取与嬴图数据库的连接。连接将使用配置项defaultGraph
中指定的图集。
文件配置连接
import os
from dotenv import load_dotenv, dotenv_values
from pathlib import Path
from ultipa import Connection, UltipaConfig
from ultipa.utils.logger import LoggerConfig
# 加载 .env 文件中的环境变量,并覆盖系统环境变量
env_path = Path('./.env')
env_dict = dotenv_values(dotenv_path=env_path)
load_dotenv(encoding='utf-8', override=True)
# 获取环境变量
env_config = {
"hosts": os.getenv("hosts"),
"username": os.getenv("username"),
"password": os.getenv("password"),
"defaultGraph": os.getenv("defaultGraph")
}
def getConn():
hosts = env_config.get("hosts", "").split(",")
username = env_config.get("username", "")
password = env_config.get("password", "")
defaultGraph = env_config.get("defaultGraph", "")
uqlLoggerConfig = LoggerConfig(name="testLog", fileName="../intergration_tests/Logs/test.log", isWriteToFile=True, isStream=True)
defaultConfig = UltipaConfig(hosts=hosts, username=username, password=password, heartBeat=10, uqlLoggerConfig=uqlLoggerConfig)
Conn = Connection.NewConnection(defaultConfig)
return Conn
response = getConn().test()
print("Code = ", response.status.code)
2024-08-19 10:21:00,347 - INFO: Test Welcome To Ultipa!
2024-08-19 10:21:00,357 - INFO: Test Welcome To Ultipa!
2024-08-19 10:21:00,370 - INFO: Test Welcome To Ultipa!
2024-08-19 10:21:00,374 - INFO: Test Welcome To Ultipa!
Code = 1000
.env
文件中指定的配置创建一个驱动程序。.env
文件应该放置在项目的根目录下。
.env
文件示例:
#hosts=mqj4zouys.us-east-1.cloud.ultipa.com:60010
hosts=192.168.1.85:60061,192.168.1.86:60061,192.168.1.87:60061
username=<username>
password=<password>
passwordEncrypt=PasswordEncrypt.MD5
timeoutWithSeconds=300
consistency=true
#crtFilePath=F:\\ultipa.crt
#maxRecvSize=10240
defaultGraph=miniCircle
#timeZone=Asia/Tokyo
#timeZoneOffset=+0700
#responseWithRequestInfo=false
#debug=false
若要查看所有可用于通过.env
文件配置连接细节的选项,请查阅配置项 。
配置项
以下各项可通过UltipaConfig
和.env
文件配置:
项目 |
类型 |
默认 |
描述 |
---|---|---|---|
hosts |
List[str] | 数据库主机地址或URI (不包含https:// 或http:// )。使用逗号分隔多个实例地址。必需项 |
|
username |
str | 主机验证用户名。必需项 | |
password |
str | 主机验证密码。必需项 | |
passwordEncrypt |
PasswordEncrypt |
PasswordEncrypt.MD5 |
驱动程序密码加密方式。 支持MD5 ,LDAP 和NOTHING |
timeoutWithSeconds |
int | 3600 | 请求超时阈值,单位为秒 |
consistency |
bool | False | 是否使用主节点以确保读取一致性 |
crtFilePath |
str | 当嬴图服务器和客户端都处于SSL模式时,SSL证书的文件路径 | |
maxRecvSize |
int | -1 | 接收数据的最大大小,单位为兆字节 |
defaultGraph |
str | default | 数据库默认使用图集 |
heartBeat |
int | 10 | 所有实例的心跳间隔,单位为毫秒;设置为0以关闭心跳机制 |
timeZone |
str | 时区,如:Asia/Shanghai | |
timeZoneOffset |
int/str | 目标时区与UTC的时差,以秒(整数)或5字符字符串(如+0700和-0430)表示 | |
responseWithRequestInfo |
bool | False | 是否返回请求 |
debug |
bool | False | 是否使用调试模式 |
uqlLoggerConfig |
LoggerConfig |
配置UQL操作的日志,包括 name、filename、isWriteToFile、level和isStream |