PonyORM
PonyORM allows you to query the database using Python generators. These generators are translated into SQL and the results are automatically mapped into Python objects. Writing queries as Python generators makes it easy for programmers to quickly construct certain queries.
For example, let's use PonyORM to query the previous Person and Address models in a SQLite database.
1 >>> from pony.orm import Database, Required, Set 2 >>> 3 >>> db = Database('sqlite', ':memory:') 4 >>> 5 >>> 6 >>> class Person(db.Entity): 7 ... name = Required(unicode) 8 ... addresses = Set("Address") 9 ... 10 >>> 11 >>> class Address(db.Entity): 12 ... address = Required(unicode) 13 ... person = Required(Person) 14 ... 15 >>> db.generate_mapping(create_tables=True)
Now we have a SQLite database in memory and two tables mapped to the db object, we can insert two objects into the database.
1 >>> p = Person(name="person") 2 >>> a = Address(address="address", person=p) 3 >>> db.commit()
The call db.commit() actually commits the new objects p and a into the database. Now we can query the database using the generator syntax.
1 >>> from pony.orm import select 2 >>> select(p for p in Person if p.name == "person")[:] 3 [Person[1]] 4 >>> select(p for p in Person if p.name == "person")[:][0].name 5 u'person' 6 >>> select(a for a in Address if a.person == p)[:] 7 [Address[1]] 8 >>> select(a for a in Address if a.person == p)[:][0].address 9 u'address'
本文介绍如何使用PonyORM这一轻量级ORM框架进行数据库操作。通过具体的例子展示了如何定义数据模型、插入数据以及使用Python生成器语法进行数据查询。
34

被折叠的 条评论
为什么被折叠?



