0
点赞
收藏
分享

微信扫一扫

ORM框架Peewee(五查)


这个网址是我的博客 写的更加详细 http://www.depthswap.com/

用户名:admins 密码:admins mysql、redis、mongodb、安装、查询、常用模块pymysql、aiomysql、peewee、sqlachemy、redis、pymongo、mongoengy、链接池、应用场景、权限分配都有。如果需要也可以加我微信,做好备注,发给你可以部署到自己的服务器

ORM框架Peewee(五查)_数据库

1. 一般查询

user1 = User.select()

2. 单条查询

user2 = User.get(User.id == 883)   
print(user2.username)
查无数据会报错

user2 = User.get_by_id(883)   
 print(user2.username)

对比1和2个区别, 先获取他们的类型

print type(user1 ) ==> <class 'peewee.SelectQuery'>  
SelectQuery类型需要使用for循环逐条获取

Print type(user2) == > <class 'createDB.User'> 
本身就是一个实例的对象可以直接获取它的属性

3. 查询部分字段

user3= User.select(User.user_name)

4. 有条件查询

user4 = User.select().where(User.id == 12)

5. 随机查询(需要先引入fn)

from peewee import fn

user5 = User.select().order_by(fn.Random()).limit(2)

6. 排序查询

  • 正序asc

user6 = User.select().order_by(User.dept_id.asc())

  • 倒序desc

user6 = User.select().order_by(User.dept_id.desc()).paginate(3, 5)   
 参数1 从第几个数据开始 参数2 要去多少数据

  • 分页

7. Not in组合查询

现有学生信息表student_info
学生姓名student_name
学号student_no
学生成绩表score_table
学号student_no
分数score

st7 = StudentsInfo.select(StudentsInfo.student_no).where(StudentsInfo.student_no > 880)
sc = StudentsScore.select().where(StudentsScore.student_no.not_in(st7))

8. 模糊查询

比如想要查询学生名字包含’ba’的学生以及学号
%符号就相当于sql里的like

st8 = StudentsInfo.select().where(StudentsInfo.student_name % '%ba%')
for i in st8:
    print i.student_no,i.student_name

Peewee做一个.where(somecolumn == None / Null / Empty)

Message.select().where(Message.somecolumn.is_null(False))

9. 比较

st8 = StudentsInfo.select().where(StudentsInfo.english_sore>StudentsInfo.chinese_sore)

查询扩展字段

query = User.get_or_none(id = 1)
    query.penpal = 'langwang'
    query.girl_friend= 'xiaoma'
    res = model_to_dict(query , extra_attrs=["penpal", "girl_friend"])

from playhouse.shortcuts import model_to_dict
from playhouse.shortcuts import dict_to_model      # dict_to_model

# 返回字典
user = model_to_dict(User.get_or_none(id=1001))
# 返回字典
user = User.create(User.create({'user_name': 'zhangsan', 'wo_no': 2019060501}))
user = model_to_dict(user)

v

Practice
             .insert(name='Hello', sex='male', id=1)
             .on_conflict(
              preserve=[Practice.sex, Practice.name])
             .execute()

person, created = Person.get_or_create(
    first_name=first_name,
    last_name=last_name,
    defaults={'dob': dob, 'favorite_color': 'green'})
# defaults dictionary, which will be used to populate values on newly-created instances.

这个大佬厉害

基本语法peewee(我喜欢这个)
Peewee 使用Peewee使用之事务peewee官方文档


举报

相关推荐

0 条评论