资讯专栏INFORMATION COLUMN

100 行代码还你一个 Python ORM

Hujiawei / 1708人阅读

摘要:工作中难免有遇到欧巴的时候,奈何我是个记性不大好的人,临笔忘词,只能祭出谷歌大法,于是想着造个小破轮子,优雅地解决连接的问题。

工作中难免有遇到 MySQL 欧巴的时候,奈何我是个记性不大好的人,临笔忘词,只能祭出谷歌大法,于是想着造个小破轮子,优雅地解决 Python 连接 MySQL 的问题。

这个轮子一定不要像 sqlalchemy 那么复杂,也不需要像 Django 的 ORM 那么丰富,就像一碗白米饭,管你吃饱,还为你解决三大问题:

轻松连接 MySQL

数据结构到模型的映射

满足增改查的基本功能,避免手写SQL

创建连接
pythonfrom data_handler import Database

db_config = {
    "host": "localhost",
    "port": 3306,
    "user": "root",
    "password": "123456",
    "database": "test"
}
Database.connect(**db_config)
定义模型
pythonfrom data_handler import Model, Field

class TestModel(Model):
  db_table = "test"
  a = Field()
  b = Field()
插入
pythontest = TestModel()
test.a = 5
test.b = "john"
test.save()
查询
pythonfor r in TestModel.where(a=5, b="john").select():
  print r.a
  print r.b
计数
pythonprint TestModel.where(a=5, b="john").count()
更新
pythonTestModel.where(a=5, b="john").update(a=1)
复杂查询请使用raw sql
pythonfrom data_handler import execute_raw_sql

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

代码放GitHub了 --> QuickORM

  

来自:建造者说

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/37479.html

相关文章

  • Django Model View Template 之间的简单交互 (二)

    摘要:当然还有其他高级的使用,日后再说完整的用户名邮箱联系地址留言信息用户留言信息使用之前已经定义好了数据模型的字段元数据方法等。 前言 接续前文,上一篇文章主要涉及了 Django 项目的基础配置等,这篇主要涉及数据库相关的 ORM ,也就是 Django 中的 Model 的使用,MVT 三层之间的交互 教程基本都是东拼西凑的,防止有些东西表述不准确,因为我之前写 JavaScript ...

    Coding01 评论0 收藏0
  • Python_Django

    摘要:为了将代码规范,约定俗成将视图放置在项目或应用程序目录中命名为文件中。必须接受字段表示字符串长度不能超过该值,默认的标签最常用的。例,自动添加发布时间。以字符串的形式存在,默认最大长度,可以通过参数设置。用于保存通用唯一识别码的字段。 MVC 大部分开发语言中都有MVC框架 MVC框架的核心思想是:解耦 降低各功能模块之间的耦合性,方便变更,更容易重构代码,最大程度上实现代码的重...

    BearyChat 评论0 收藏0
  • Python数据模型构建和迁移方案:SQLAlchemy&Alembic

    摘要:当使用到后者这类微型框架时,根据业务场景不同,如果需要处理模型的建立升级和迁移的问题,可以考虑下接下来要介绍的和。这时候检查数据库,可以发现生成了张表,升级工作就完成了。而我在使用的实际项目中是操作的原生,异步类型的配合使用留待以后探究。 背景 Python的世界里有许多web框架:比如大而全的 Django, 提供了模型定义迁移,到路由处理,再到视图的渲染等整套功能;比如小巧灵活的F...

    李增田 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<