文章目录

  • Peewee 是什么
  • 如何使用
    • 基本步骤
    • 连接数据库
    • 创建数据表
    • 插入一条数据记录
    • 获取条件过滤后的数据记录
      • 多个过滤条件的方式
    • 更新数据记录
    • 查询单条数据记录
    • 删除条件过滤后的数据记录
    • 删除单条数据记录
    • 其他要点

Peewee 是什么

Peewee 即 Python OMR 框架之一。

如何使用

基本步骤

  • 通过 pip3 下载 peewee
  • 新建 models.py 模型文件
  • 在 models.py 中加入以下基础代码
  • 运行 models.py,在 mysql 中生成 new_record 表

连接数据库

from peewee import *
from settings import DATABASES# 连接数据库
MYSQL_DB = MySQLDatabase(host=DATABASES['DEFAULT']['HOST'],port=DATABASES['DEFAULT']['PORT'],user=DATABASES['DEFAULT']['USER'],passwd=DATABASES['DEFAULT']['PASSWORD'],database=DATABASES['DEFAULT']['NAME'],
)class BaseModel(Model):"""基础模型类"""class Meta:database = MYSQL_DB

创建数据表

class NewRecord(BaseModel):"""NewRecord 模型类"""field_1 = CharField(max_length=10, null=True)field_2 = CharField(max_length=100, null=True)field_3 = IntegerField(default=0)field_4 = TextField()class Meta:db_table = 'new_record'if __name__ == '__main__':# 创建表NewRecord.create_table()

插入一条数据记录

new_record = NewRecord()
new_record.field_1 = "field_1"
new_record.field_2 = "field_2"
new_record.field_3 = 0
new_record.field_4 = "field_4"
new_record.save()

获取条件过滤后的数据记录

from modules.models import NewRecorddef get_data_list():"""获取数据列表:return:"""data_list = []new_records = NewRecord.select().where(NewRecord.status == 0).order_by(NewRecord.id)for new_record in new_records:_data = {'field_1': new_record.field_1,'field_2': new_record.field_2,'field_3': new_record.field_3}data_list.append(_data)return data_list

多个过滤条件的方式

注意:过滤条件之间的关系不是用 and 和 or 的逻辑运算符,而是用 & 和 |。

Record.select().where((Record.field_1 == value_1) & (Record.field_2 == value_2))

更新数据记录

def update_new_record_field_3(field_1, field_2,field_3):"""更新特定查询数据字段 field_3:param field_1: 待更新 field_1:param field_2: 待更新 field_2:param field_3: 待更新 field_3:return:"""update_instance = NewRecord.update({NewRecord.field_3: field_3}).where(NewRecord.field_1 == field_1and NewRecord.field_2 == field_2)update_instance.execute()

查询单条数据记录

# 若查询不到记录会报错
_record = NewRecord.get(NewRecord.field_1 == field_1 and NewRecord.field_2 == field_2)
print(_record.field_1, _record.field_2)

删除条件过滤后的数据记录

NewRecord.delete().where(NewRecord.field_1 == field_1).execute()

删除单条数据记录

_record = NewRecord.get(NewRecord.field_1 == field_1 and NewRecord.field_2 == field_2)
_record.delete_instance()

其他要点

  • 联合约束的创建
class Meta:db_table = 'new_record'constraints = [SQL('UNIQUE KEY(field_1, field_2)')]
  • 日期时间的默认值
class NewRecord(BaseModel):"""NewRecord 模型类"""# ...add_time = DateTimeField(datetime.datetime.now)class Meta:db_table = 'new_record'
  • 根据数据表情况生成 models.py
python -m pwiz -e mysql -H {主机地址} -p 3306  -u root -- password   {数据库名称} > {生成的代码文件 例model.py}
  • 查询操作符 & 逻辑运算符

Peewee 使用手册相关推荐

  1. 两个ORM的pk初体验:Peewee VS SQLAlchemy

    之前从MySQL数据库捞数据都是使用的Peewee的ORM进行的获取,同时对于获取的结果,使用其强大的insert_many方法也能快速的导入大批量的数据. 现在实习的过程中,要上线一个服务,服务中要 ...

  2. 分布式训练使用手册-paddle 数据并行

    分布式训练使用手册¶ 分布式训练基本思想¶ 分布式深度学习训练通常分为两种并行化方法:数据并行,模型并行,参考下图: 在模型并行方式下,模型的层和参数将被分布在多个节点上,模型在一个mini-batc ...

  3. 正则语法完全正则表达式手册_语法格式重点

    20211202 https://blog.csdn.net/lc11535/article/details/103266263 该表达式打开re.U(re.UNICODE)标志. python –& ...

  4. CUDA C++编程手册(总论)

    CUDA C++编程手册(总论) CUDA C++ Programming Guide The programming guide to the CUDA model and interface. C ...

  5. html iso标准文档,HTML ISO-8859-1 参考手册

    # HTML ISO-8859-1 参考手册 HTML 4.01 支持 ISO 8859-1 (Latin-1) 字符集. ISO-8859-1 的较低部分(从 1 到 127 之间的代码)是最初的 ...

  6. 最好的程序界面就是用户无需去阅读操作手册就知道该如何使用的界面

    最好的程序界面就是用户无需去阅读操作手册就知道该如何使用的界面. 原则 1.一致性  如果你可以在一个列表的项目上双击后能 够弹出对话框,那么应该在任何列表中双击都能弹出对话框.要有统一的字体写号.统 ...

  7. ffmpeg linux安装_ffmpeg命令中文手册

    功能 视频转换和编辑工具 示例 1.从mp4视频文件中提取音频并保存为mp3音频格式 [root@node_116 video]# ffmpeg -i video.mp4 -vn sound.mp3f ...

  8. java修炼手册3.8_Java修炼手册

    <Java修炼手册免费版>是一款专为想要自学JAVA的用户打造的全方位掌上学习软件,拥有各阶段的科学课程模块,从视频,资料,图片,演示等多种方面全面引导用户科学而快速的融入JAVA的世界中 ...

  9. android 设置setmultichoiceitems设置初始化勾选_阿里巴巴Java开发手册建议创建HashMap时设置初始化容量,但是多少合适呢?...

    集合是Java开发日常开发中经常会使用到的,而作为一种典型的K-V结构的数据结构,HashMap对于Java开发者一定不陌生. 关于HashMap,很多人都对他有一些基本的了解,比如他和hashtab ...

最新文章

  1. 如何快速开发一个博客
  2. 6个2教你认识递归的力量!
  3. javac 编译与 JIT 编译
  4. SQL Server日期计算
  5. 融资2.5亿的国产浏览器,被曝只是打包chrome
  6. Java 面试之数据库
  7. MPMoviePlayerViewController 改良版播放器
  8. Codeforces Round #553 (Div. 2) 题解
  9. tomcat7解压版安装过程
  10. 微信小程序开发之十 —— 点击事件
  11. PLC编程实例(一) 基本电路
  12. 网络文章(摘录)_顺序
  13. 一步一步学Silverlight 2系列(30):使用Transform实现更炫的效果(下)
  14. JavaScript弹出模式窗口
  15. [react] addons
  16. 推荐免费的svn空间
  17. 2022年危险化学品经营单位安全管理人员考题及答案
  18. 如何用教育优惠开通Apple Music 会员5元/月并实现会员共享
  19. 企业网站搭建的流程及方法
  20. 电厂计算机工作原理是什么,电力猫的工作原理是什么?电力猫怎么用?

热门文章

  1. asmr刷新失败无法连接上服务器_月圆之夜连接服务器失败 连接不上网络怎么办...
  2. Lpms-B2 IMU数据采源码分析 及 TCP/IP握手简单分析
  3. spring使用中applicationContext.xml文件头部声明
  4. android 统一推送平台,工信部实验室成立安卓统一推送联盟:推送服务将实现统一...
  5. 获取农历节日的公共方法
  6. C# 读取或修改文件后缀
  7. 文献调研-存算一体的实现
  8. FireStart教程:基于SharePoint的出差报销流程六
  9. 【程序人生】机灵鹤七月份的月度总结
  10. java bidi_Java Bidi isRightToLeft()用法及代码示例