【peewee】超轻量级ORM操作数据库

一、删除

多条删除,返回值为删除的条数
1、delete_instance = TUserMission.delete().where(TUserMission.mission_code == mission_code).execute()
单条删除
2、name = TUserMission.get(user_name='zhangsan') #单条查询结果
   name .delete_instance()

二、查询

多条件查询

1、select()  返回值为查询集合,展示需要用for循环遍历
flows = TUserForageFlow.select().where((TUserForageFlow.uid == self.uid) & (TUserForageFlow.act_code == self.actCode))

flows = TUserForageFlow.select().where((TUserForageFlow.uid == self.uid) | (TUserForageFlow.act_code == self.actCode))

for flow in flows:
	flow.xxx

2、get()  返回值为单条,直接取的对象中的值
flow = TUserForage.get((TUserForage.uid == self.uid) & (TUserForage.act_code == self.actCode))

return flow.xxx

三、排序,limit操作

1、排序  order_by(xxx),默认是ASC

DESC 为 order_by(-xxx)  ,或者 id.desc()
TUserForageFlow.select().where(...).order_by(-TUserForageFlow.update_time)

TUserMission.select().where(....).order_by(TUserMission.id.desc())

2、结果集中的前 10 条数据
TUserForageFlow.select().where(...).limit(10)

四、反向生成数据库Model

1、 pwiz 模型生成器 生成Model

在cmd中执行下面语句:pwiz自动生成 Model【数据库模型】
python -m pwiz -e mysql -H 127.0.0.1  -p 3306 -u xxx -P xxx  Student > Student .py

-m 
-e  引擎
-H  host
-p 端口
-u 用户名
-P  密码   虽然语句中有密码,但是在cmd执行时仍然需要字词输入一遍密码
Student    数据库名
Student .py  生成文件名

五、demo

1、用peewee生成一个数据库Model

python -m pwiz -e mysql -H 127.0.0.1 -p 3306 -u xxx -P xxx Student > Student.py


生成Model文件如下图所示:
from peewee import *

database = MySQLDatabase('Student', **{'charset': 'utf8', 'sql_mode': 'PIPES_AS_CONCAT', 'use_unicode': True, 'host': '127.0.0.1', 'port': 3306, 'user': 'xxx', 'password': 'xxx'})

class UnknownField(object):
    def __init__(self, *_, **__): pass

class BaseModel(Model):
    class Meta:
        database = database

class Student(BaseModel):
    name = IntegerField(column_name='FCACHED', constraints=[SQL("DEFAULT 1")])
    code = CharField(column_name='FDESC', null=True)
    phone = AutoField(column_name='FID')
    course = CharField(column_name='FKEY', unique=True)

    class Meta:
        table_name = 't_application_setting_uat'

2、使用Model操作数据库

from app_project.core.model.test1.Student import (
    Student
)

1、查询操作
Student.select().where(Student.uid == self.uid).order_by(Student.id.desc())

使用以上介绍的操作方法即可

你可能感兴趣的:(python,peewee,数据库)