这个网址是我的博客 写的更加详细 http://www.depthswap.com/
用户名:admins
密码:admins
mysql、redis、mongodb、安装、查询、常用模块pymysql、aiomysql、peewee、sqlachemy、redis、pymongo、mongoengy、链接池、应用场景、权限分配都有。如果需要也可以加我微信,做好备注,发给你可以部署到自己的服务器
查
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官方文档