博客
关于我
100 行代码还你一个 Python ORM
阅读量:798 次
发布时间: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/

    你可能感兴趣的文章
    MySQL8.0.29启动报错Different lower_case_table_names settings for server (‘0‘) and data dictionary (‘1‘)
    查看>>
    MYSQL8.0以上忘记root密码
    查看>>
    Mysql8.0以上重置初始密码的方法
    查看>>
    mysql8.0新特性-自增变量的持久化
    查看>>
    Mysql8.0注意url变更写法
    查看>>
    Mysql8.0的特性
    查看>>
    MySQL8修改密码报错ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
    查看>>
    MySQL8修改密码的方法
    查看>>
    Mysql8在Centos上安装后忘记root密码如何重新设置
    查看>>
    Mysql8在Windows上离线安装时忘记root密码
    查看>>
    MySQL8找不到my.ini配置文件以及报sql_mode=only_full_group_by解决方案
    查看>>
    mysql8的安装与卸载
    查看>>
    MySQL8,体验不一样的安装方式!
    查看>>
    MySQL: Host '127.0.0.1' is not allowed to connect to this MySQL server
    查看>>
    Mysql: 对换(替换)两条记录的同一个字段值
    查看>>
    mysql:Can‘t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock‘解决方法
    查看>>
    MYSQL:基础——3N范式的表结构设计
    查看>>
    MYSQL:基础——触发器
    查看>>
    Mysql:连接报错“closing inbound before receiving peer‘s close_notify”
    查看>>
    mysqlbinlog报错unknown variable ‘default-character-set=utf8mb4‘
    查看>>