前言
peewee是一个轻量级的ORM框架。使用参考官网
基础理论
Peewee中Model类、fields和model实例与数据库的映射关系如下:
即:一个Model类代表一个数据库的表,一个Field字段代表数据库中的一个字段,而一个model类实例化对象则代表数据库中的一行
创建model,建立数据库
创建model有两种。第一种:先定义Model,然后通过db.create_tables()创建或Model.create_table()创建表。
class BaseModel(Model):
class Meta:
database = database
class XXX(BaseModel):
id= CharField()
name= CharField()
passwd = CharField(column_name='assert', null=True)
class Meta:
table_name = 'xx'
其中,CharField为数据类型,更多参考使用参考官网。xx代表model名和table名。
第二种:已经存在过数据库,则直接通过python -m pwiz批量创建Model。
python -m pwiz -e mysql -H host_ip -p 端口 -u 用户名 -P 密码 库名 > 保存位置
操作数据库
增
p=model_name(name='sanzhang', passwd='123456', is_relative=True)
p.save()
删
model_name.delete().where(model_name.name == 'sanzhang').execute()
改
p= model_name.update({model_name.name:'sili'}).where(Person.name == 'sanzhang')
p.execute()
查
p= p.select().where(model_name.name== 'sili')
查询model格式结过字典化
from datetime import datetime,date
from playhouse.shortcuts import model_to_dict
def json_serial(obj):
if isinstance(obj,(datetime,date)):
return obj.isoformat()
raise TypeError('type %s not serializable'%type(obj))
p=json.dumps(model_to_dict(p,backrefs=True),default=json_serial)