nuodb python驱动程序
pynuodb的Python项目详细描述
此包包含社区驱动的纯pythonNuoDB客户端库 它提供了标准的PEP 249sql api和nuodb管理 应用程序编程接口。这是一个社区驱动的驱动程序,来自 诺德。
Requirements
如果你还没有这样做,Download and Install NuoDB。
Installation
上一个稳定版本在pypi上可用,可以使用 pip:
$ pip install pynuodb
或者(例如,如果pip不可用),可以下载tarball 从GitHub安装并使用setuptools:
$ curl -L https://github.com/nuodb/nuodb-python/archive/master.tar.gz | tar xz $ cd nuodb-python* $ python setup.py install $ # The folder nuodb-python* can be safely removed now.
Example
下面是一个使用PEP 249api创建一些表、插入的示例 一些数据,运行查询,并在其自身之后进行清理:
importpynuodboptions={"schema":"test"}connect_kw_args={'database':"test",'host':"localhost",'user':"dba",'password':"dba",'options':options}connection=pynuodb.connect(**connect_kw_args)cursor=connection.cursor()try:stmt_drop="DROP TABLE IF EXISTS names"cursor.execute(stmt_drop)stmt_create=""" CREATE TABLE names ( id BIGINT NOT NULL GENERATED ALWAYS AS IDENTITY PRIMARY KEY, name VARCHAR(30) DEFAULT '' NOT NULL, age INTEGER DEFAULT 0 )"""cursor.execute(stmt_create)names=(('Greg',17,),('Marsha',16,),('Jan',14,))stmt_insert="INSERT INTO names (name, age) VALUES (?, ?)"cursor.executemany(stmt_insert,names)connection.commit()age_limit=15stmt_select="SELECT id, name FROM names where age > ? ORDER BY id"cursor.execute(stmt_select,(age_limit,))print("Results:")forrowincursor.fetchall():print("%d | %s"%(row[0],row[1]))finally:cursor.execute(stmt_drop)cursor.close()connection.close()
各种管理和监视操作可以通过 nuodb python api,下面的一些包括监听数据库状态和关闭 关闭数据库:
importtimefrompynuodbimportentityclassDatabaseListener(object):def__init__(self):self.db_left=Falsedefprocess_left(self,process):print("process left: %s"%process)defdatabase_left(self,database):print("database shutdown: %s"%database)self.db_left=Truelistener=DatabaseListener()domain=entity.Domain("localhost","domain","bird",listener)try:database=domain.get_database("test")ifdatabaseisnotNone:database.shutdown(graceful=True)foriinrange(1,20):time.sleep(0.25)iflistener.db_left:time.sleep(1)breakfinally:domain.disconnect()
有关开始使用nuodb的更多信息,请参阅Documentation。
License
PynuODB是根据BSD 3-Clause License授权的。