ormithorynque是一个面向python和sqlite3的orm(对象关系映射器),具有出色的性能和多重继承支持。

ORMithorynque的Python项目详细描述


ormitorynque是一个orm(对象关系映射器),也就是说一个面向对象的数据库 建立在关系数据库(sqlite3)之上。 ormithorynque允许在数据库中保存和重新加载python对象,并执行复杂的 以及对数据库的优化请求。 ormithorynque可以看作是带有对象和(多重)继承的sqlite3, 或者使用sql查询的python对象系统。

Ormithrynque的主要功能是:

  • 由于预构建的请求和高速缓存,性能非常好 (比SqlAlchemy、SqlObject、Pony和Peewee更快)
  • 添加新表、新列或新索引时自动更新数据库架构
  • 单继承和多继承支持
  • 交易
  • 本机SQL查询
  • 有趣的名字:)

它的主要缺点是:

  • 支持单个数据库后端(sqlite3)
  • 没有特定的高级查询语言
  • 非线程安全

Ormitorynque可在GNU LGPL许可证v3下获得。 它需要python 3.2(或更高版本)或pypy3。

安装

要安装ormithorynque,请在命令提示符中键入以下命令(具有根权限):

pip install ormithorynque

我能用奥米索林克做什么?

从文件名打开一个OracyTyrnk数据库(如果数据库不存在,它自动创建):

>>> 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

  • 首次发布

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

推荐PyPI第三方库


热门话题
Java中是否有数字的默认类型   java调用一个类的方法来使用另一个类的实例   java HtmlUnit不适用于javascript处理   java需要帮助才能连接MongoDB   java如何从Maven中的src/main/resources复制文件?   java保存Int值(共享首选项)   从另一个类调用方法时,java Autowired组件出现空指针异常   java Spring JPA:PropertyAccessException 1:。。。MethodInvocationException:。'driverClassName'。。。org/postgresql/Driver:不支持的专业。次要版本52.0   java使用增强的JDO模型类在Eclipse中运行Junit测试   java如何使用eclipse IDE为junit创建可运行的jar文件   java如何在安卓中检测应用程序的启动和退出   java在其他线程可以访问静态映射时从数据库更新静态映射   java@Entitty和@EntityScan不起作用。我正在使用SpringBoot和jpa存储库,发生了很多次   java如何与google日历集成?