1.1.1 安装
pip install peewee
pip install pymysql
pip install cryptography
1.1.2 定义表结构
# 1. 定义并生成表
import datetime
from peewee import *
db = MySQLDatabase('peewee', host='127.0.0.1', user='root', passwd='root');
class User(Model):
username = CharField(unique=True)
class Meta:
database = db
class Tweet(Model):
user = ForeignKeyField(User, backref='tweets')
message = TextField()
created_date = DateTimeField(default=datetime.datetime.now)
is_published = BooleanField(default=True)
class Meta:
database = db
1.1.3 生成数据表
db.connect()
db.create_tables([User, Tweet])
1.1.4 添加/更新/删除/查询
# 2.添加
# charlie = User(username="charlie") # update set age = 18 where username ="charlie"
# rows = charlie.save()
# if rows == 0:
# print("未更新数据")
# charlie.save(force_insert=True) # 1.save方法既可以完成新建. 也可以完成更新的操作(你的对象钟主键值是否有设置你是一个更新的操作)
# huey = User.create(username="huey")
# 3.查询
# 3.1 get方法
# 1.返回回来的是直接的user对象
# 2.这个方法如果查询不到会抛出异常
try:
# charlie = User.get(User.username == "charlie")
charlie = User.get_by_id("chalie")
print(charlie.username)
# 这个操作发起的sql请求是什么
except User.DoesNotExist as e:
print("查询不到")
# 3.2 select操作 查询所有
# users = User.select()
# 1.没有看到sql查询语句,用于组装sql
# 2.对象是 ModelSelect 对象 我们对 ModelSelect 进行for循环和切片的时候才会发起请求
# print(users.sql())
# print(type(users))
# user = users[0]
# print(type(user))
# usernames = ["charlie", "huey", "mickey"]
# users = User.select().where(User.username.in_(usernames))
# for user in users:
# print(user.username)
# for user in User.select():
# print(user.username)
# 更新
charlie = User(username="charld2ie") # update set xx=xx where username="charlie"
print(charlie.save())
# 使用update更新
print(User.update(age=15).where(User.username == "charlie").execute())
# 删除数据
user = User.get(User.username == "charld2ie")
user.delete_instance()
1.1.5 解决peewee的warning