SQLObject

SQLObject 是一个流行的对象关系管理器,为你的数据库提供了一个对象接口,其中表作为类,行作为实例,列作为属性。

SQLObject 包含一个基于 Python 对象的查询语言,它使 SQL 更加抽象,并为应用程序提供了大量的数据库独立性。

示例

这只是一个创建一个简单类来包装表的代码段

>>> from sqlobject import *
>>>
>>> sqlhub.processConnection = connectionForURI('sqlite:/:memory:')
>>>
>>> class Person(SQLObject):
...     fname = StringCol()
...     mi = StringCol(length=1, default=None)
...     lname = StringCol()
...
>>> Person.createTable()

SQLObject 支持你已有的大多数数据库架构,还可以为你发布 CREATE 语句(在 Person.createTable() 中看到)。

以下是使用该对象的方法

>>> p = Person(fname="John", lname="Doe")
>>> p
<Person 1 fname='John' mi=None lname='Doe'>
>>> p.fname
'John'
>>> p.mi = 'Q'
>>> p2 = Person.get(1)
>>> p2
<Person 1 fname='John' mi='Q' lname='Doe'>
>>> p is p2
True

查询

>>> p3 = Person.selectBy(lname="Doe")[0]
>>> p3
<Person 1 fname='John' mi='Q' lname='Doe'>
>>> pc = Person.select(Person.q.lname=="Doe").count()
>>> pc
1