项目作者: sin1ght

项目描述 :
一个简单的python sqlite orm
高级语言: Python
项目地址: git://github.com/sin1ght/python-sqlite-orm.git
创建时间: 2018-04-25T14:15:44Z
项目社区:https://github.com/sin1ght/python-sqlite-orm

开源协议:

下载


python-sqlite-orm

一个简单的python sqlite orm

Exmaples:

首次使用操作数据库的方法时(save,update,select,delete)自动创建表

自动创建主键id,自增

  • 插入
    ```python
    from peach import *
    from peach import fieldtype

class Article(Model):
name=Column(fieldtype.String(20))
price=Column(fieldtype.Float(),default=11.0,is_null=False)

if name == “main“:
SqliteDatabase(‘test.db’)

  1. a=Article(name='c++')
  2. a.save()
  1. * 查询
  2. ```python
  3. #first()返回单个对象
  4. #all()返回对象列表
  5. a=Article.select([Article.name]).where(Article.id==1).first()
  6. a.name
  7. #select()无参数则查询所有字段 默认总是查询id字段
  8. b=Article.select().where(Article.price>=10).all()
  9. #同一个where里面的表达式用and连接 不同where之间是 or连接
  10. Article.select().where(Article.name=='c++',Article.price<=20).where(Article.id==2).all()
  11. #limit order_by offset也支持
  12. Article.select().order_by(Article.price,desc=True).limit(1).offset(1).all()
  • 更新
    ```python

    通过调用查询出来的对象的save()

    a=Article.select().where(Article.id==1).first()
    a.price=19
    a.save(update=True)

通过update()

Article.update([Article.name,Article.price],[‘php’,15.63]).where(Article.id==1).excute()

  1. * 删除
  2. ```python
  3. Article.delete().where(Article.id==1).excute()
  • 一对多 外键
    ```python
    from peach import *
    from peach import fieldtype

class Author(Model):
name=Column(fieldtype.String(20))
age=Column(fieldtype.Integer())

class Book(Model):
name = Column(fieldtype.String(20))
price= Column(fieldtype.Float())
author=ForeignKeyColumn(Author)

if name == “main“:
SqliteDatabase(‘test.db’)

  1. a=Author.select().where(Author.id==1).first()
  2. book=Book(name='c++',price=12.3,author=a)
  3. book.save()
  4. #查询时可直接访问author属性
  5. b=Book.select().where(Book.id==2).first()
  6. print b.author
  7. #父表访问backref属性 是个对象列表 backref默认时字表名加个s 可以在设置外键列的时候传递参数设置
  8. a=Author.select().where(Author.id==1).first()
  9. print a.books

```