1.介绍

ORM全拼Object-Relation Mapping(对象-关系映射)

作用:主要实现模型对象到关系数据库数据的映射

通过ORM框架作为一个中间者或者是一个桥梁,开发者通过定义模型类,属性体现对象间的关系,通过调用模型对象的save(),Delete(),all(),get()方法,进行操作数据库,而不是使用原生的sql语句进行直接进行数据库操作。

优点:

只需要面向对象编程, 不需要面向数据库编写代码.

  对数据库的操作都转化成对类属性和方法的操作.

  不用编写各种数据库的sql语句.

实现了数据模型与数据库的解耦, 屏蔽了不同数据库操作上的差异.

  不在关注用的是mysqloracle...等.

  通过简单的配置就可以轻松更换数据库, 而不需要修改代码

缺点:

相比较直接使用SQL语句操作数据库,有性能损失.

根据对象的操作转换成SQL语句,根据查询的结果转化成对象, 在映射过程中有性能损失.

2.Flask-SQLAlchemy安装及配置

(1)安装flask-sqlalchemy

pip install flask-sqlalchemy

(2)如果连接的是mysql数据库,需要安装mysqldb

pip install flask-mysqldb

如果在Ubuntu中安装mysqldb框架失败解决方案:https://blog.csdn.net/qq_31903733/article/details/82999631

(3)代码(创建表的代码)

from flask import Flask
from flask_sqlalchemy import SQLAlchemy app=Flask(__name__) # 配置数据库连接地址
app.config['SQLALCHEMY_DATABASE_URI']="mysql://root:123456@127.0.0.1:3306/rupeng"
# 是否追踪数据库的修改
app.config['SQLALCHEMY_TRACK_MODIFICATIONS']=False # 初始化SQLAlchemy
db=SQLAlchemy(app) class Role(db.Model):
# 表名不指定,默认为类名小写
__tablename__="UserInfo"
id=db.Column(db.Integer,primary_key=True,autoincrement=True)
name=db.Column(db.String(64),unique=True) @app.route("/")
def index():
return "index" if __name__ == '__main__':
db.create_all()
app.run(debug=True)

数据库连接设置:

在 Flask-SQLAlchemy 中,数据库使用URL指定,而且程序使用的数据库必须保存到Flask配置对象的 SQLALCHEMY_DATABASE_URI 键中

app.config['SQLALCHEMY_DATABASE_URI']="mysql://root:123456@127.0.0.1:3306/rupeng"

动态追踪修改设置,如果未设置指挥提示警告

app.config['SQLALCHEMY_TRACK_MODIFICATIONS']=False

查询时会显示原始SQL语句

app.config['SQLALCHEMY_ECHO']=True

最新文章

  1. OpenCV2:图像的几何变换,平移、镜像、缩放、旋转(2)
  2. [原创][LaTex]汇总博文
  3. Scala可变长度参数
  4. Maven-007-Nexus 用户添加,用户角色分配,用户修改密码,管理员重置用户密码
  5. PHP中is_numeric函数十六进制绕过0day
  6. 影响SQL server性能的关键
  7. MSDN知识库_c#关键字_static
  8. (收藏)C#实现截屏
  9. C语言-04函数
  10. sql循环遍历
  11. jq插件第二款来袭 图片滚动
  12. jQuery源码笔记——三
  13. SVN报错:can't open file db/txn-current-lock:permission denied 解决方法
  14. iOS 代码开发规范
  15. 用js 获取url 参数 页面跳转 ? 后的参数
  16. ArcMap修改粘滞移动容差防止要素在选择时无意拖动移动
  17. nexus的jar包上传与下载
  18. nodejs笔记之连接mysql数据库
  19. 使用 mybatis plus 动态数据源
  20. Context连接和断开的情况下的CRUD操作

热门文章

  1. opencv:轮廓匹配
  2. 整体单改,单局部改,整体局部改,ListSerializer类
  3. Git提交时提示“Please make sure you have the correct access rights and the repository exists.”的解决方法
  4. 喵星之旅-狂奔的兔子-rabbitmq的java客户端使用入门
  5. Ubuntu 16 安装Nginx+Php+Mysql
  6. Go之Cookie和Session
  7. 【PAT甲级】1071 Speech Patterns (25 分)(getline(cin,x))
  8. 使用ssh 初始化git一个空java工程
  9. dateTimepicker 设置默认日期的方法
  10. Java电子书高清PDF集合免费下载