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中的%ss。< 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包。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java为什么单元测试中的“验证”在不同实例的情况下不返回“不同参数”错误?   java如何从具有相同类名的div中选择元素(Selenium)   Java制作纸牌游戏,有关于类的问题吗   bluej在Java中使用变异器和访问器设置颜色和圆半径   java准确定位异常错误的最佳方法是什么?   使用多个监视器时的java设置对话框位置   java如何在不使用JavascriptExecutor的情况下在网页中向下/向上滚动   java在for循环中将大小设置为n   java为什么akka需要不可变的消息   java LdapInvalidDnException:意外标记:   java如果字符串的第一个字母不是一个,如何大写?   使用htmlunit的java html内容提取   java从CDI托管bean获取方法的注释   java有办法在运行时检查post请求参数的大小吗   java我可以将实体注入托管Bean并直接持久化吗?