打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Python学习路线介绍Peewee怎么用

Python学习路线介绍Peewee怎么用,SQLAlchemy 功能很强大,文档很丰富,是一个重量级的 ORM 框架。本文给大家介绍一个小清新,轻量级 ORM 框架 Peewee,支持 Python 2.7+ 和 3.4+,支持 SQLite、MySQL 以及 PostgreSQL。如果对 Django 的 ORM 比较熟悉,那么 Peewee 的学习成本会非常低。

安装

pip install peewee

模型定义

from peewee import *db = SqliteDatabase('people.db')class BaseModel(Model):    class Meta:        database = dbclass Person(BaseModel):    name = CharField(verbose_name='姓名', max_length=10, null=False, index=True)    gender = IntegerField(verbose_name='姓别', null=False, default=1)    birthday = DateField(verbose_name='生日', null=True, default=None)    class Meta:        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().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 这个 primary key,则修改属性后,save 即是更新操作p = Person(name='tom', gender=1, birthday=date(2000, 1, 1))p.save()p.gender = 0p.save()# 更新 jerry 的 birthday 数据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)for p in people:    print(p.name, p.gender, p.birthday)
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
像对象一样对待数据
Python 序列化模型数据为 JSON
Python namedtuple(命名元组)使用实例
Python笔记 class中的
Python的轻量级ORM框架peewee
Python编程:使用pythink查询数据库
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服