1.ORM介绍,基本配置及通过ORM框架创建表
1.介绍
ORM全拼Object-Relation Mapping(对象-关系映射)
作用:主要实现模型对象到关系数据库数据的映射
通过ORM框架作为一个中间者或者是一个桥梁,开发者通过定义模型类,属性体现对象间的关系,通过调用模型对象的save(),Delete(),all(),get()方法,进行操作数据库,而不是使用原生的sql语句进行直接进行数据库操作。
优点:
只需要面向对象编程, 不需要面向数据库编写代码.
对数据库的操作都转化成对类属性和方法的操作.
不用编写各种数据库的sql语句
.
实现了数据模型与数据库的解耦, 屏蔽了不同数据库操作上的差异.
不在关注用的是mysql
、oracle
...等.
通过简单的配置就可以轻松更换数据库, 而不需要修改代码
缺点:
相比较直接使用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
最新文章
- OpenCV2:图像的几何变换,平移、镜像、缩放、旋转(2)
- [原创][LaTex]汇总博文
- Scala可变长度参数
- Maven-007-Nexus 用户添加,用户角色分配,用户修改密码,管理员重置用户密码
- PHP中is_numeric函数十六进制绕过0day
- 影响SQL server性能的关键
- MSDN知识库_c#关键字_static
- (收藏)C#实现截屏
- C语言-04函数
- sql循环遍历
- jq插件第二款来袭 图片滚动
- jQuery源码笔记——三
- SVN报错:can't open file db/txn-current-lock:permission denied 解决方法
- iOS 代码开发规范
- 用js 获取url 参数 页面跳转 ? 后的参数
- ArcMap修改粘滞移动容差防止要素在选择时无意拖动移动
- nexus的jar包上传与下载
- nodejs笔记之连接mysql数据库
- 使用 mybatis plus 动态数据源
- Context连接和断开的情况下的CRUD操作
热门文章
- opencv:轮廓匹配
- 整体单改,单局部改,整体局部改,ListSerializer类
- Git提交时提示“Please make sure you have the correct access rights and the repository exists.”的解决方法
- 喵星之旅-狂奔的兔子-rabbitmq的java客户端使用入门
- Ubuntu 16 安装Nginx+Php+Mysql
- Go之Cookie和Session
- 【PAT甲级】1071 Speech Patterns (25 分)(getline(cin,x))
- 使用ssh 初始化git一个空java工程
- dateTimepicker 设置默认日期的方法
- Java电子书高清PDF集合免费下载