跳转到主要内容

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-0.1.1.tar.bz2 (341.9 kB 查看散列)

上传时间

由以下机构支持