Django和Flask中ORM的三大特征
Django/Flask算是目前python开发最常用的两种框架了,两种各有优劣在此就不多做赘述,在此浅谈一下两种中的模型框架ORM的三大特征.
首先ORM是什么?
ORM 是 Object Relational Mapping的缩写,可以称之为对象关系型映射.
三大特征分别是:
- 数据表到编程类的关系映射
- 数据类型的映射
- 关系映射
1.数据表到编程类的关系映射
在数据库中每一张表对应到编程语言中都有一个类, 在ORM中允许将数据生成一个类,允许将类自动生成一张表.
以下用Flask中的一段代码简单演示一下:
#创建路由
app = Flask(__name__)
#配置数据库信息
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://用户名:密码@HOST:PORT/数据库名称'']
#创建数据库实例
db = SQLAlchemy(app)
#生成一个Tests类
class Tests(db.Model):
#创建一张表tests
__tablename__ = "tests"
#表中列,类属性
id = db.Column(db.Integer,primary_key=True)
tname = db.Column(db.String(30),nullable=False)
tage = db.Column(db.Integer)
tbirth = db.Column(db.Date)
#提交创建数据
db.create_all()
2.数据类型的映射
数据表中的字段以及数据类型 对应到 编程语言中有对应的属性
3.关系映射
将数据库中表与表之间的关系, 对应到编程语言中类与类之间的关系,主要有三种:
一对一
一对多
多对多
最后浅谈一下个人对ORM的优点的看法:
1.封装数据库中所有的操作,大大的提高了开发效率
2.可以省略庞大的数据访问层,即便不用SQL编码也能完成对数据的CRUD(增删改查)操作