Post(title="第6篇文章", content="Hello world 3", categories=[c1, c2]) # 查看关联的数据 print(Category["tech"].posts) # 这个Category["tech"]等同于Category.get("tech") print(Post[6].categories) # 删除 # 调用Entity实例的.delete()方法可以删掉这条数据。 # 如果需要把相关联的数据一并删掉,需要在定义model字段的时候加上cascade_delete = True的参数。 with db_session: Category["tech"].delete() # 查询PonyORM的查询方式比较魔性,和别的ORM有较大区别,这里给个简单的例子看看样子。 # 用Entity对象上的select方法,传入lambda 表达式进行查询,查了id大于2并且内容包含"world"的条目。 with db_session: query = Post.select(lambda p: p.post_pk > 2 and "world" in p.content) print(list(query)) # 将query对象转为list,触发真正的查询获取数据 # 使用另一种方式用select函数,传入一个生成器表达式作为参数,查询了以"咋地"结尾的Comment。 with db_session: query = select(p.content for p in Comment if p.content.endswith("咋地")) print(query[:]) # 另一种转list的方式 # 使用SQL直接查询。 with db_session: query = Category.select_by_sql("SELECT * FROM category LIMIT 1") print(query[:])