博客
关于我
100 行代码还你一个 Python ORM
阅读量:799 次
发布时间:2023-04-16

本文共 1131 字,大约阅读时间需要 3 分钟。

工作中难免会遇到MySQL连接相关问题,作为一个记性不太好的开发者,我经常会临时忘记具体的连接方法。于是,我决定编写一个简洁的解决方案,帮助自己快速解决Python连接MySQL的问题。

这个小工具的目标是简化MySQL连接过程,同时解决以下三大痛点:

  • 轻松连接MySQL数据库
  • 数据结构与模型的自动映射
  • 提供增删改查的基本功能,减少手写SQL的工作量
  • 1. 创建数据库连接

    使用简单的配置文件即可完成数据库的连接设置。例如:

    from data_handler import Databasedb_config = {    'host': 'localhost',    'port': 3306,    'user': 'root',    'password': '123456',    'database': 'test'}Database.connect(**db_config)

    2. 定义数据模型

    通过定义模型类,可以将数据库中的表结构与Python对象进行映射。例如:

    from data_handler import Model, Fieldclass TestModel(Model):    db_table = 'test'    a = Field()    b = Field()

    3. 数据插入

    通过属性赋值即可完成数据插入。例如:

    test = TestModel()test.a = 5test.b = 'john'test.save()

    4. 数据查询

    通过条件查询即可获取数据。例如:

    for r in TestModel.where(a=5, b='john').select():    print(r.a)    print(r.b)

    5. 数据计数

    支持通过条件查询计数。例如:

    print(TestModel.where(a=5, b='john').count())

    6. 数据更新

    通过条件更新字段值。例如:

    TestModel.where(a=5, b='john').update(a=1)

    7. 复杂查询

    支持通过raw SQL执行复杂查询。例如:

    from data_handler import execute_raw_sqlresults = execute_raw_sql('select b, count(*) from test where b = %s group by b;', (1,))for val, cnt in results:    print(val, cnt)

    这个工具的目标是为开发者提供一个轻量级的解决方案,简化MySQL连接和操作流程,同时降低手写SQL的频率。

    转载地址:http://dcgfk.baihongyu.com/

    你可能感兴趣的文章