peewee 操作 MySQL

  • peewee 的简单使用
    • 为什么要用 ORM
    • 为什么要使用 peewee
    • 安装 peewee
    • 连接 mysql
    • 创建表
    • 插入数据
    • 查询数据
    • 更新数据
    • 删除数据

peewee 的简单使用

为什么要用 ORM

  1. 隔离数据库之间的差异
  2. 便于维护
  3. ORM 会提供防 sql 注入的功能
  4. 变量传递式的调用更加简单

为什么要使用 peewee

常见 python orm 有:

  • Django ORM
  • SQLAlchemy
  • peewee
  1. peewee 简单、灵活,声明方式和 Django ORM 接近
  2. star 数量高,活跃度高
  3. 文档质量高,peewee-async 活跃度高

安装 peewee

官网

pip install pymysql
pip install peewee

连接 mysql

module.py

from peewee import MySQLDatabasedatabase = 'test'
host='127.0.0.1'
user='root'
passwd=''
port=3306
db = MySQLDatabase(database, host, user, passwd, port, charset='utf8mb4')
# 查询数据库是连接
print(db.is_closed())  # 返回false未连接
# 连接数据库
db.connect()

创建表

module.py

from datetime import datetime
from peewee import MySQLDatabase, Model, CharField, DateTimeField, IntegerField, FixedCharFieldclass BaseModel(Model):class Meta:# 将实体与数据库进行绑定database = db# 继承自BaseModel,直接关联db,并且也继承了Model。Model有提供增删查改的函数
class CheckLog(BaseModel):# IntegerField->intuid = IntegerField(verbose_name='用户编号')action = CharField(verbose_name='行为', max_length=30)# DateTimeField->datetimetime = DateTimeField(default=datetime.now())class Users(BaseModel):# CharField->varchar   null->非空约束name = CharField(verbose_name='姓名', max_length=10, null=False)passwd = CharField(verbose_name='密码', max_length=20, null=False)phone = FixedCharField(verbose_name='手机号')if __name__ == '__main__':# 创建表Users.create_table()CheckLog.create_table()

插入数据

sqltest.py

from models.model import Users, CheckLogdef insert_models():users = Users()users.name = "admin"users.passwd = "admin123"users.phone = "13996693254"users.save() # 一定要 savecheck_log = CheckLog()check_log.uid = users.idcheck_log.action = f"创建用户{users.name}"check_log.save() # 一定要 saveif __name__ == '__main__':insert_models()

查询数据

sqltest.py

def query_models():
# 获取某一条数据print(Users.get(Users.id == 1).name)# 或print(Users.get_by_id(1).name)# 或print(Users[1].name) # 这里的 1 是 id
# 获取全部数据users = Users.select()for user in users:print(user.name)if __name__ == '__main__':query_models()

更新数据

sqltest.py

def update_models():user = Users.get_by_id(1)user.name = "test"user.save()check_log = CheckLog()check_log.uid = user.idcheck_log.action = f"修改用户名{user.name}"check_log.save()# 或Users.update(name="test").where(Users.id == 1).execute()if __name__ == '__main__':update_models()

删除数据

sqltest.py

def del_models():# user = Users.get_by_id(1)# user.delete_instance()# 或Users.delete().where(Users.id == 1).execute()if __name__ == '__main__':del_models()

peewee操作MySQL相关推荐

  1. python 连接mysql 字符集_Python 操作 MySQL 字符集的问题

    使用 Python 操作 MySQL 有不少库供我们选择,比如 MySQLdb.mysqlclient.PyMySQL.peewee 和 SQLAIchemy 等.我使用的是 mysql-connec ...

  2. Python 操作 MySQL 的5种方式(转)

    Python 操作 MySQL 的5种方式 不管你是做数据分析,还是网络爬虫,Web 开发.亦或是机器学习,你都离不开要和数据库打交道,而 MySQL 又是最流行的一种数据库,这篇文章介绍 Pytho ...

  3. python app mysql_Python 操作 MySQL 的5种方式

    不管你是做数据分析,还是网络爬虫,Web 开发.亦或是机器学习,你都离不开要和数据库打交道,而 MySQL 又是最流行的一种数据库,这篇文章介绍 Python 操作 MySQL 的 5 种方式,你可以 ...

  4. 使用python ORM来操作MySQL

    昨天的博客是用MySQL官方的MySQL-connector驱动来完成数据库的连接和使用,但只适用于小项目的操作,当项目规模增加时,代码会越来越复杂,维护成本也越来越高,此时需要一个更好的设计模式.即 ...

  5. DOS命令行操作MySQL常用命令

    平时用可视化界面用惯了,如果紧急排查问题,没有安装可视化工具的话,只能通过命令来看了. 以备不时之需,我们要熟悉一下命令行操作MySQL. 打开DOS命令窗口:WIN + R 输入cmd,回车 然后输 ...

  6. c语言连接数据库例子,c语言操作mysql数据库小例子_互帮互助(C language MySQL database operation example _ mutual help).doc...

    这是精心收集的精品经典资料,值得下载保存阅读! c语言操作mysql数据库小例子_互帮互助(C language MySQL database operation example _ mutual h ...

  7. python3操作mysql教程_python3操作mysql教程

    一.下载\安装\配置 1. python3 当前最新版本是python3.2,下载地址是 http://www.python.org/ftp/python/3.2.3/python-3.2.3.msi ...

  8. linux mysql c语言编程,在Linux下通过C语言操作MySQL数据库

    2010年1月27日 晚 22:10 作者:longyun(http://www.linuxdiyf.com/mailto:mtd527@gmail.com) 续:小弟最近想学习数据库,并想开发一个简 ...

  9. python如何控制mysql_python如何操作mysql

    mysql 使用 启动服务 sudo systemctl start mysql pip3 install pymysql python 操作数据库: 定义类 import pymysql class ...

最新文章

  1. GPT-3:人工智能的新突破
  2. 读书:儒林外史第一回
  3. android 固定比例图片裁剪插件,如何在Android中裁剪不同比例的图像?
  4. 5.21工作记录(修改页面跳转,去掉多余的js;增加图片清除功能)
  5. android电视原理图,电视机工作原理
  6. 【GTK】如何得到控件的位置
  7. 阿里P8架构师分享:如何从0到1设计一个类Dubbo的RPC框架
  8. Verilog中begin...end和fork....join的区别和用法
  9. 情人节快乐(转)十五首最美爱情古诗词,伴你过一个温馨浪漫的情人节
  10. 秘笈大公开 | 魏泓手把手教你利用无菌动物,提高国自然中标率!
  11. 代码审计--13--源代码审计思路(下)
  12. web前端面试题之肉(css)
  13. Python中通过property实现属性的修改、删除、查看
  14. Silverlight学习之调用bing搜索引擎进行网络搜索
  15. class function
  16. 0x32 数学知识-约数
  17. Python相关软件下载教程
  18. 0基础学MySQL数据库—从小白到大牛(38)数据库备份与恢复
  19. mysql select乱码_MySQL命令行查询乱码解决方法:
  20. C语言-PTA-7-123 空心字母金字塔 (10分)

热门文章

  1. 几个有趣的经济学故事
  2. 推荐几款创意网站,总有一款你会喜欢上!
  3. python切片操作 当所有数据都省略时_Python切片操作
  4. WEB攻击之CSRF攻击与防护
  5. 解决CST报错——“The desired daemon is down. Check the lmgrd log file...”
  6. MySQL普通用户无法本地登录的解决方法及MySQL的用户认证算法
  7. 2023会是中国服务器品牌新纪元吗?
  8. php事件的应用场景,php观察者模式应用场景实例详解
  9. Java代码用pdf模板实现 pdf 的填充输出
  10. 【论文阅读-TPAMI2021】Curriculum Learning(课程学习)综述