Python下ORM的一个设计举例

来源:互联网 发布:尚观linux视频下载 编辑:程序博客网 时间:2024/05/22 04:58
ORM是对象-关系管理器,是对数据库进行操作的API接口。选择MySQL作为网站的后台数据库;执行SQL语句进行操作,并将常用的SELECT、INSERT等语句进行函数封装;在异步框架的基础上,采用aiomysql作为数据库的异步IO驱动;将数据库中表的操作,映射成一个类的操作,也就是数据库表的一行映射成一个对象(ORM)。整个ORM也是异步操作。
预备知识:Python协程和异步IO(yield from的使用)、SQL数据库操作、元类、面向对象知识、Python语法
思路
  
如何定义一个user类,这个类和数据库中的表User构成映射关系,二者应该关联起来,user可以操作表User    
  通过Field类将user类的属性映射到User表的列中,其中每一列的字段又有自己的一些属性,包括数据类型,列名,主键和默认值

python的版本是Python 3.5.2

orm.py


有了ORM,我们就可以把Web App需要的3个表用Model表示出来:
model.py

初始化数据库表

如果表的数量很少,可以手写创建表的SQL脚本:

schema.sql

如果表的数量很多,可以从Model对象直接通过脚本自动生成SQL脚本,使用更简单。

把SQL脚本放到MySQL命令行里执行:

$ mysql -u root -p < schema.sql我们就完成了数据库表的初始化。

编写数据访问代码

接下来,就可以真正开始编写代码操作对象了。比如,对于User对象,我们就可以做如下操作:#!/usr/bin/env python3

mysql_test.py

 


0 0
原创粉丝点击