peewee操作MySQL
peewee 操作 MySQL
- peewee 的简单使用
- 为什么要用 ORM
- 为什么要使用 peewee
- 安装 peewee
- 连接 mysql
- 创建表
- 插入数据
- 查询数据
- 更新数据
- 删除数据
peewee 的简单使用
为什么要用 ORM
- 隔离数据库之间的差异
- 便于维护
- ORM 会提供防 sql 注入的功能
- 变量传递式的调用更加简单
为什么要使用 peewee
常见 python orm 有:
- Django ORM
- SQLAlchemy
- peewee
- peewee 简单、灵活,声明方式和 Django ORM 接近
- star 数量高,活跃度高
- 文档质量高,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相关推荐
- python 连接mysql 字符集_Python 操作 MySQL 字符集的问题
使用 Python 操作 MySQL 有不少库供我们选择,比如 MySQLdb.mysqlclient.PyMySQL.peewee 和 SQLAIchemy 等.我使用的是 mysql-connec ...
- Python 操作 MySQL 的5种方式(转)
Python 操作 MySQL 的5种方式 不管你是做数据分析,还是网络爬虫,Web 开发.亦或是机器学习,你都离不开要和数据库打交道,而 MySQL 又是最流行的一种数据库,这篇文章介绍 Pytho ...
- python app mysql_Python 操作 MySQL 的5种方式
不管你是做数据分析,还是网络爬虫,Web 开发.亦或是机器学习,你都离不开要和数据库打交道,而 MySQL 又是最流行的一种数据库,这篇文章介绍 Python 操作 MySQL 的 5 种方式,你可以 ...
- 使用python ORM来操作MySQL
昨天的博客是用MySQL官方的MySQL-connector驱动来完成数据库的连接和使用,但只适用于小项目的操作,当项目规模增加时,代码会越来越复杂,维护成本也越来越高,此时需要一个更好的设计模式.即 ...
- DOS命令行操作MySQL常用命令
平时用可视化界面用惯了,如果紧急排查问题,没有安装可视化工具的话,只能通过命令来看了. 以备不时之需,我们要熟悉一下命令行操作MySQL. 打开DOS命令窗口:WIN + R 输入cmd,回车 然后输 ...
- c语言连接数据库例子,c语言操作mysql数据库小例子_互帮互助(C language MySQL database operation example _ mutual help).doc...
这是精心收集的精品经典资料,值得下载保存阅读! c语言操作mysql数据库小例子_互帮互助(C language MySQL database operation example _ mutual h ...
- python3操作mysql教程_python3操作mysql教程
一.下载\安装\配置 1. python3 当前最新版本是python3.2,下载地址是 http://www.python.org/ftp/python/3.2.3/python-3.2.3.msi ...
- linux mysql c语言编程,在Linux下通过C语言操作MySQL数据库
2010年1月27日 晚 22:10 作者:longyun(http://www.linuxdiyf.com/mailto:mtd527@gmail.com) 续:小弟最近想学习数据库,并想开发一个简 ...
- python如何控制mysql_python如何操作mysql
mysql 使用 启动服务 sudo systemctl start mysql pip3 install pymysql python 操作数据库: 定义类 import pymysql class ...
最新文章
- GPT-3:人工智能的新突破
- 读书:儒林外史第一回
- android 固定比例图片裁剪插件,如何在Android中裁剪不同比例的图像?
- 5.21工作记录(修改页面跳转,去掉多余的js;增加图片清除功能)
- android电视原理图,电视机工作原理
- 【GTK】如何得到控件的位置
- 阿里P8架构师分享:如何从0到1设计一个类Dubbo的RPC框架
- Verilog中begin...end和fork....join的区别和用法
- 情人节快乐(转)十五首最美爱情古诗词,伴你过一个温馨浪漫的情人节
- 秘笈大公开 | 魏泓手把手教你利用无菌动物,提高国自然中标率!
- 代码审计--13--源代码审计思路(下)
- web前端面试题之肉(css)
- Python中通过property实现属性的修改、删除、查看
- Silverlight学习之调用bing搜索引擎进行网络搜索
- class function
- 0x32 数学知识-约数
- Python相关软件下载教程
- 0基础学MySQL数据库—从小白到大牛(38)数据库备份与恢复
- mysql select乱码_MySQL命令行查询乱码解决方法:
- C语言-PTA-7-123 空心字母金字塔 (10分)
热门文章
- 几个有趣的经济学故事
- 推荐几款创意网站,总有一款你会喜欢上!
- python切片操作 当所有数据都省略时_Python切片操作
- WEB攻击之CSRF攻击与防护
- 解决CST报错——“The desired daemon is down. Check the lmgrd log file...”
- MySQL普通用户无法本地登录的解决方法及MySQL的用户认证算法
- 2023会是中国服务器品牌新纪元吗?
- php事件的应用场景,php观察者模式应用场景实例详解
- Java代码用pdf模板实现 pdf 的填充输出
- 【论文阅读-TPAMI2021】Curriculum Learning(课程学习)综述