tinydb的基类

tinydb-baseClass的Python项目详细描述


丁腈基

我用TinyDB。。。很多时候,我似乎在一遍又一遍地写同样的函数。这个小项目背后的想法是为开发人员提供一种方法,在不需要构建基类的情况下,轻松地围绕tinydb创建数据模型。在

如何安装

最简单的方法是通过依赖关系管理器pip install tinyDbBase进行安装,或者如果使用pipenv install tinyDbBase进行安装。在

我怎么用这个东西

工厂

这允许您与Tinydb以及同一对象中的根对象和表进行交互。在

fromtinydb_baseimportFactorydb=Factory('myData.json','myTable')db.db# equliervent to `TinyDB`.db.tbl# equliervent to `TinyDB.Table`.db.close()# closes the database file.

数据库

其思想是导入基类,然后派生到自己的类中。其思想是,您可以通过创建一个类来创建您的数据层,该类将解决所需的问题,并且可以正常工作。在

^{pr2}$

这将使访问基类时,可以添加自己的自定义函数。将在项目中使用文件的名称空间,但您可以在实例中轻松覆盖此名称空间。另一个很酷的特性是所需的键这是必须存在于每一行中的键,它也可以更改。在

方法
Method NameattrDescription
createdictthis adds a new row to the database.
createMultiplelist of dictsthis added multiple rows
readAllreturns a list obj
readByIdidthis gets a row by the id
removeByIdidthis removes a row by id
clearthis removes all data from the table
existstag, valuechecks if a a value with header exists
now_tsreturns a unix time as a float

数据库basesercure

它的工作方式与DatabaseBase完全相同,但是通过提供一个salt,您可以使用Fernet加密,建议您定义自己的salt

fromtinydb_base.cryptographyimportDatabaseBaseSercureclassDiary(DatabaseBaseSercure):def__init__(self,file='ds.json',table=__name__,requiredKeys='title,content',salt='salt'):super().__init__(file=file,table=table,requiredKeys=requiredKeys,salt=salt)obj=Diary(salt='thisisasalt')
^{tb2}$

用户

很多系统需要使用用户组件,这是一个 简单的类,允许创建用户,它是一个嵌入的类 来自DatabaseBase,但有属于用户的speail方法

fromtinydb_baseimportUserusrTable=User()# will work with a user as a table,>>>usrTable.makeUser('me','mypassword')1>>>usrTable.authUser('me','!mypassword')False>>>usrTable.authUser('me','mypassword')True
Method NameattrDescription
makeUserusername, passwordcreates a user in the system
testUseruserId, passwordtests a password angest a user id
authUserusername, passwordtest a username and password

获取集

这是一个非常简单的接口,它基于标记设置和获取值。这可以用于设置之类的事情。如果标记dose不存在,类将引发tinydb_base.exceptions.RowNotFound_Exception

fromtinydb_base.getSetimportGetSetclassSettings(GetSet):def__init__(self,file:str='ds.json',table:str=__name__):super().__init__()Settings().set('foo','bar')Settings().get('foo')

解冻键

如果需要在数据文件中包含密钥,可以确保它们存在。在

fromtinydb_base.getSetimportGetSetclassSettings(GetSet):def__init__(self,salt,pw,file='ds.json',table=__name__):super().__init__(salt,pw,file=file,table=table)self.defaultRows({'foo':'bar'})

NEW超时设置

get set的这个新特性允许用户将值设置为timeout并从数据库中删除,这是通过set方法传递的参数来管理的。在

fromtinydb_base.getSetimportGetSet,futureTimeStampclassSettings(GetSet):def__init__(self,file:str='ds.json',table:str=__name__):super().__init__()obj=Settings().set('api-key','thisisaapikey, futureTimeStamp(hour=1))

上面的代码将向数据库中添加一行,该行只在数据库中保留一行小时检查是在每次电话会议的基础上完成的。在

GetSetSercure

工作原理与GetSet相同,但标记和值都已加密。在

fromtinydb_base.getSetSercureimportGetSetSercureclassPasswordCode(GetSetSercure):def__init__(self,salt,pw,file='ds.json',table=__name__):super().__init__(salt,pw,file=file,table=table)obj=PasswordCode('salty','notasercurepassword').set('foo','bar')

将表导出到文件

这些函数将文档列表导出为JSON或Ymal,这些函数采用documents的列表和导出路径。这将创建一个包含所有数据和人类可读的时间-日期戳的文件。在

fromtinydb_base.exporterimportjsonExportfromtinydb_base.exporterimportymalExportfromtinydb_baseimportDatabaseBasea=DatabaseBase()forindexinrange(0,10):a.create({'title':index})b=jsonExport(a.readAll(),'jsonData.json')b=ymalExport(a.readAll(),'ymalData.ymal')

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

推荐PyPI第三方库


热门话题
使用SeleniumWebDriver(又称Selenium2.0)JAVA向下滚动鼠标   java获取与消费者组kafka关联的主题列表   java在现实生活中,您什么时候会使用堆栈而不是常规链表,或者使用常规队列而不是优先级队列?   java实际参数列表和形式参数列表的长度不同(但两种长度都是2?)   默认情况下,Lucene(java框架)是否根据术语计算文档的tfidf和余弦相似性?   java编辑XML样式表更改Android中的按钮   java在Eclipse4中从处理程序更新视图   java是节点列表、数组、列表还是其他什么?   java Hibernate查询问题   java Spark在并行化列表时引发ArrayIndexOutOfBoundsException   Java中有3D几何算法库吗?   java如何获取超过25条post消息   java如何在不同的活动中获取Int的值?getIntent()不再工作了   java在VerticalViewPage(Android)的每个页面中动态插入JSON数据