什么是orm?---->对象关系映射(object relational mapping)
就是使用面向对象编写数据表结构,然后通过功能把表结构和数据库的操作映射到数据库当中,简单来说,使用类进行数据库的定义和增删改查。
ORM关系图
ORM解决了上述的四个问题
1、多个请求进入,每次对数据库打开和关闭对服务器造成很大的压力。
2、连接数据库和操作部分代码会有冗余
3、对开发者的数据库水平要求高
4、修改数据库类型或者做数据库调整麻烦
但是也降低了数据库的查询速度
ORM:优缺点
- 解耦,降低数据库和代码的关联程度,我们不用关心用的是什么数据库,orm会自动将 我们的操作翻译成对应数据库的语法结构
- 只需要关心业务逻辑编写,不需要花太多精力去做数据的操作,提高开发效率
缺点:
- 我在实现复杂查询时,使用orm实现起来比较困难,我们只能使用orm框架提供的接口去操作数据库。
ORM的查询效率低。
关于ORM的框架
在python中,Django中自带ORM的框架
sqlalchemy是模仿Django的orm
Flask中没有自带的框架,但是有个flask-sqlalchemy的模块,基于sqlalchemy
flask-sqlalchemy初始案例
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
#创建应用
app = Flask(__name__)
#应用进行配置,数据库配置
app.config["SQLALCHEMY_DATABASE_URI"] = "mysql+pymysql://root:@127.0.0.1/oatest"
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = True
#绑定数据库操作实例到app
db = SQLAlchemy(app)
#创建数据库的person表
class Person(db.Model):
id = db.Column(db.Integer,primary_key = True,autoincrement = True)
name = db.Column(db.String(32))
db.create_all()