当前位置: 首页 > 后端技术 > Python

优秀程序员的Python学习路线介绍如何使用Peewee

时间:2023-03-26 18:13:24 Python

优秀程序员的Python学习路线介绍如何使用Peewee,SQLAlchemy非常强大,文档丰富,是一个重量级的ORM框架。本文为大家介绍一个小清新的轻量级ORM框架Peewee,支持Python2.7+和3.4+,支持SQLite、MySQL和PostgreSQL。如果熟悉Django的ORM,Peewee的学习成本会很低。安装pipinstallpeeweemodeldefinitionfrompeeweeimport*db=SqliteDatabase('people.db')classBaseModel(Model):classMeta:database=dbclassPerson(BaseModel):name=CharField(verbose_name='name',max_length=10,null=False,index=True)gender=IntegerField(verbose_name='surname',null=False,default=1)birthday=DateField(verbose_name='birthday',null=True,default=None)classMeta:table_name='people'首先定义了我们的模型类Person(用过Django的同学一定很熟悉这种模型定义方式,和Django中定义模型非常相似),使用SqliteDatabase指定要使用的数据库people.db.然后定义Person表的数据字段。如果不指定主键,peewee会自动为我们创建一个id字段作为主键。每个Field都有几个参数可以配置,长度的大小,是否为空(null)和默认值(default),索引(index)和唯一索引(unique)几个常用的数据库选项。创建数据库表Person.create_table()#或db.create_tables([Person])操作数据库直接创建实例,然后调用实例方法save()。您还可以创建一个实例并通过create()类方法保存它。p=Person(name='tom',gender=1,birthday=date(2000,1,1))p.save()jerry=Person.create(name='jerry',gender=0,birthday=date(1999,12,1))delete使用delete().where().execute()进行条件删除,where()为删除条件,execute()执行删除操作。如果是查询过的实例对象,调用实例方法delete_instance()删除。#删除名字为tom的数据Person.delete().where(Person.name=='tom').execute()#已经实例化的对象,调用delete_instance()删除p=Person(name='tom'',gender=1,birthday=date(2000,1,1))p.save()p.delete_instance()使用update().wahere().excute()进行条件更新。对于已经查询到的数据对象,修改对象属性后,直接save()更新。#已经实例化的对象,主键为id,修改属性后,保存为更新操作p=Person(name='tom',gender=1,birthday=date(2000,1,1))p.save()p.gender=0p.save()#更新jerry的生日数据q=Person.update({Person.birthday:date(1999,12,12)}).where(Person.name=='jerry')q.execute()使用Person.get()查询单个数据查询,或者使用Person.select().where().get()。多条数据查询使用Person.select().where()#查询单条数据p=Person.select().where(Person.name=='tom').get()print(p.name,p.gender,p.birthday)#使用简写Model.get()p=Person.get(Person.name=='tom')print(p.name,p.gender,p.birthday)#查询多个数据people=Person.select().where(Person.gender==1)forpinpeople:print(p.name,p.gender,p.birthday)