ORMithorynque是一个性能卓越、支持多继承的Python和SQLite3 ORM(对象关系映射器)。
项目描述
ORMithorynque是一个ORM(对象关系映射器),即在关系数据库(SQLite3)之上构建的对象数据库。ORMithorynque允许将Python对象保存到数据库中,并在数据库上执行复杂和优化的查询。ORMithorynque可以看作是带有对象和(多重)继承的SQLite3,或者带有SQL查询的Python对象系统。
ORMithorynque的主要功能包括
由于预建请求和积极的缓存,性能非常好(比SQLAlchemy、SQLObject、Pony和Peewee快)
添加新表、新列或新索引时自动更新数据库模式
支持单一和多重继承
事务
原生SQL查询
有趣的名字 :)
其主要缺点是
仅支持单个数据库后端(SQLite3)
没有特定的高级查询语言
不是线程安全的
ORMithorynque在GNU LGPL许可v3下可用。它需要Python 3.2(或更高版本)或PyPy 3。
安装
要安装ORMithorynque,请在命令提示符中输入以下命令(需要root权限)
pip install ormithorynque
我可以用ORMithorynque做什么?
从文件名打开ORMithorynque数据库(如果数据库不存在,则自动创建)
>>> import ormithorynque >>> database = ormithorynque.Database("database_filename.sqlite3")
创建两个类,它们之间存在一对一和多对一的关系(如果类不存在,将自动创建相应的表;如果存在,将根据需要自动更新新列)
>>> class Person(database.Object): ... name = database.SQLAttribute(str, indexed = True) ... first_name = database.SQLAttribute(str) ... houses = database.SQLOneToMany("House", "owner") >>> class House(database.Object): ... address = database.SQLAttribute("Nowhere") # String attribute with a default value ... owner = database.SQLAttribute(object)
创建两个实例(数据库将自动更新)
>>> someone = Person(name = "Some", first_name="One") >>> house = House(address = "Somewhere", owner = someone)
可以访问和修改实例的属性(数据库将自动更新)
>>> someone.name Some >>> someone.name = "Some2" >>> someone.houses [<House id=2 address='Somewhere' owner=<Person id=1 first_name='One' name='Some2'>>]
最后,可以使用普通的SQL查询数据库
>>> database.select_one("select count(id) from Person") (1,)
变更日志
0.1
首次发布
链接
ORMithorynque在BitBucket(开发仓库)上:https://bitbucket.org/jibalamy/ormithorynque
ORMithorynque在PyPI(Python包索引,稳定版本)上:https://pypi.python.org/pypi/ormithorynque
文档:http://pythonhosted.org/ORMithorynque
对任何评论、问题、建议或帮助都请发邮件给我!
Jiba – Jean-Baptiste LAMY – jibalamy @ free.fr
项目详情
ORMithorynque-0.1.1.tar.bz2的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | feab6f89d78e4d1d0e63a494c67ea2e652691598af2bd21b720c42794133c768 |
|
MD5 | 76e27989e62209a860927d2fd5966171 |
|
BLAKE2b-256 | c62bb567398995654371665d5f75d9bc7dbd0be41b9bc3e79c06b2948ce2cc96 |