1.1.1 安装
pip install peeweepip install pymysqlpip install cryptography
1.1.2 定义表结构
# 1. 定义并生成表import datetimefrom peewee import *db = MySQLDatabase('peewee', host='127.0.0.1', user='root', passwd='root');class User(Model): username = CharField(unique=True) class Meta: database = dbclass 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