jdatabase python包。为易于在python中进行数据库控制和交互而设计。jdatabase包支持mysql和postgresql数据库系统。
jdatabase的Python项目详细描述
JDatabase(JDB)
jdatabase包作者:joshua widrick
文档:docs.jwid.co
github(源代码):github.com/joshwidrick/jdb
版本:1.1.1-alpha3
许可证:麻省理工学院
功能/概述:
jdatabase包的功能是允许轻松流畅地连接、控制和使用mysql,以及
PostgreSQL数据库系统通过一种易于使用的并发格式。该包还允许记录数据事务,
允许数据库回滚。< BR>
此软件包的开发仅用于我的许多其他项目。这个包有很多正常用户不需要的默认功能。任何您不需要的功能,您都可以忽略(但建议您理解)。
安装:
jdatabase包可以通过pypi/pip公开获得,因此您只需
sudo pip安装jdatabase
。
包可以更新为
sudo pip install jdatabase--升级
。< BR>
从源,运行
sudo python setup.py安装
。
实例化:
jdatabase对象的实例化需要主机、用户、密码(passwd)和数据库名(db)。可选参数是
字符集,默认为"utf8"
;端口,默认为3306
;SSL,默认为true
;自动提交,默认为
默认为true
。
fromjdatabaseimportJdatabasejdb=Jdatabase(host="db_hostname",user="db_username",passwd="db_password",db="db_name")
表格方法:
获取表名()
方法获取所连接数据库中所有表的名称。< BR>返回str表名列表。
jdb.get_table_names()< Buff行情>
使用此方法还会更新self.table_名称和self.stable_名称以供自用。
输出:
['SYSTEM_TABLE', 'table_name', 'table_name2', ...]
获取已清理的表名()
方法获取所连接数据库中所有非系统表的名称。< BR>返回str表名列表。
jdb.get_cleaned_table_names()< Buff行情>
此方法不更新self.table_名称和self.stable_名称。
输出:
['table_name', 'table_name2', ...]
检查表(名称)
方法在数据库中检查名为name的表。< BR>如果找到表,则返回true
,否则返回false
。
jdb.check_for_table("table_name")
创建表(名称,{列名称:[parms]})
< Buff行情>< Buff行情>对于所有表的创建,建议使用create_table_if false_check()
。
在数据库中创建表。< BR>返回查询的行数,应为0
jdb.create_table("table_name",{"jd":["VARCHAR(128)","PRIMARY KEY"],"column_name":["DATATYPE","DEFAULT VALUE"]})
# with auto primary key insertionjdb.create_table("table_name",{"column_name":["DATATYPE","DEFAULT VALUE"],"column2_name":["DATATYPE","DEFAULT VALUE"]})< Buff行情>
jdatabase包自动添加一个jd列作为主键列(如果不包括主键列)。
< Buff行情>
建议的默认值为不为空
。
如果不存在,则创建表(名称,{列名称:[parms]})
< Buff行情>< Buff行情>对于所有表的创建,建议使用create_table_if false_check()
。
如果数据库中不存在表名,则在数据库中创建表,并进行数据库级存在性检查。< BR><强>rns查询的行数,应该是0
jdb.create_table_if_not_exists("table_name",{"jd":["VARCHAR(128)","PRIMARY KEY"],"column_name":["DATATYPE","DEFAULT VALUE"]})
fromjdatabaseimportJdatabasejdb=Jdatabase(host="db_hostname",user="db_username",passwd="db_password",db="db_name")0 < Buff行情>
jdatabase包自动添加一个jd列作为主键列(如果不包括主键列)。
< Buff行情>
建议的默认值为不为空
。
如果检查为false,则创建表(名称,{列名称:[parms]})
如果数据库中不存在表名,则在数据库中创建表,并进行查询调用存在性检查。< BR>返回查询的行数,应为0
fromjdatabaseimportJdatabasejdb=Jdatabase(host="db_hostname",user="db_username",passwd="db_password",db="db_name")1
fromjdatabaseimportJdatabasejdb=Jdatabase(host="db_hostname",user="db_username",passwd="db_password",db="db_name")2 < Buff行情>
jdatabase包自动添加一个jd列作为主键列(如果不包括主键列)。
< Buff行情>
建议的默认值为不为空
。
数据方法:
获取一个(名称,[字段],(其中,[参数],(顺序,参数))
从连接的数据库中的表中获取一行名为name的数据。< BR>返回数据行。
fromjdatabaseimportJdatabasejdb=Jdatabase(host="db_hostname",user="db_username",passwd="db_password",db="db_name")3
fromjdatabaseimportJdatabasejdb=Jdatabase(host="db_hostname",user="db_username",passwd="db_password",db="db_name")4
fromjdatabaseimportJdatabasejdb=Jdatabase(host="db_hostname",user="db_username",passwd="db_password",db="db_name")5
fromjdatabaseimportJdatabasejdb=Jdatabase(host="db_hostname",user="db_username",passwd="db_password",db="db_name")6
fromjdatabaseimportJdatabasejdb=Jdatabase(host="db_hostname",user="db_username",passwd="db_password",db="db_name")7 < Buff行情>
get_one()只需要name值。
输出:
fromjdatabaseimportJdatabasejdb=Jdatabase(host="db_hostname",user="db_username",passwd="db_password",db="db_name")8
全部获取(名称,[字段],(其中,[参数],(顺序,参数))
从已连接数据库中名为name的表中获取所有数据。< BR>返回数据。
fromjdatabaseimportJdatabasejdb=Jdatabase(host="db_hostname",user="db_username",passwd="db_password",db="db_name")9
jdb.get_table_names()0
jdb.get_table_names()1
jdb.get_table_names()2
jdb.get_table_names()3 < Buff行情>
get_all()只需要name值。
输出:
jdb.get_table_names()4
插入(名称,{data})
将一行数据插入到已连接数据库中名为name的表中。< BR>返回要查询的行数。
jdb.get_table_names()5 < Buff行情>
vals
应与表中的列类型相同。
插入批处理(名称,[{data1},{data2}])
将一批数据插入到连接的数据库中名为name的表中。< BR>返回要查询的行数。
jdb.get_table_names()6 < Buff行情>
vals
应与表中的列类型相同。
更新(name,{data},(where))
更新所连接数据库中名为name的表中的数据。< BR>返回要查询的行数。
jdb.get_table_names()7 < Buff行情>
vals
应与表中的列类型相同。
插入更新(名称,{data},键)
将数据插入或更新所连接数据库中名为name的表中的数据,使用列key作为参数数据和表中数据之间比较检查的键。< BR>返回要查询的行数。
jdb.get_table_names()8 < Buff行情>
vals
应与表中的列类型相同。
删除(名称(where))
根据where条件删除表中已连接数据库中名为name的行。< BR>返回要查询的行数。
jdb.get_table_names()9
['SYSTEM_TABLE', 'table_name', 'table_name2', ...]
0
最后一个id()
获取最后一个插入ID。
返回最后一个插入ID。
['SYSTEM_TABLE', 'table_name', 'table_name2', ...]
1
上一个查询()
获取上次执行的查询。< BR>返回上次执行的查询。
['SYSTEM_TABLE', 'table_name', 'table_name2', ...]
2
类方法:
连接()
方法建立与数据库的连接。在实例化时自动运行。< BR>以str的形式返回mysql或postgresql的数据库类型。
['SYSTEM_TABLE', 'table_name', 'table_name2', ...]
3
打开了吗?
方法检查连接对象与数据库的连接是否打开。< BR>如果连接打开,则返回true
,否则返回false
。
['SYSTEM_TABLE', 'table_name', 'table_name2', ...]
4
是否已连接()
方法检查数据库是否打开,如果没有,则检查存在连接错误。< BR>如果连接处于打开状态、重新建立连接或连接错误,则返回true。
['SYSTEM_TABLE', 'table_name', 'table_name2', ...]
5
查询(SQL,[参数])
方法来执行原始SQL查询,并用参数替换SQL中的%s
s。< BR>返回光标对象。
['SYSTEM_TABLE', 'table_name', 'table_name2', ...]
6
< Buff行情>不需要参数。
< Buff行情>
任何变量使用都需要参数,f""字符串不起作用。
提交()
方法将所有当前挂起的更改提交到数据库。只有在实例化中将autocommit设置为false
时,才需要此方法。
['SYSTEM_TABLE', 'table_name', 'table_name2', ...]
7
关闭()
方法关闭与数据库的连接。
['SYSTEM_TABLE', 'table_name', 'table_name2', ...]
8
重新连接()
方法关闭与数据库的连接(如果数据库已打开),然后重新打开连接。
['SYSTEM_TABLE', 'table_name', 'table_name2', ...]
9
\uu str
返回JDatabase对象连接到的数据库的名称。
jdb.get_cleaned_table_names()0
输出:
jdb.get_cleaned_table_names()1
脚注:
这个包的灵感来自于我需要一种更简单的方式来与python中的数据库交互,以及simplemysql包。