Flask_数据库(SQLAlchemy)
ORM:对象-关系映射 【object-Relation Mapping】
作用:实现模型对象到关系数据库数据的映射
图解:
优点:
1.面向对象编程而不是面向数据库,对数据的操作都 转换成对类属性和方法的操作,不需要写sql语句
2.实现了数据模型和数据的解耦,解决了不同数据操作上的差异
缺点:
1.相对于SQL语句操作,性能损失。因为是将对象转SQL,将结果转对象造成的
Flask_SQLAlchemy
定义:关系型数据库框架,对数据库的抽象,提高开发效率
安装:
pip istall flask-sqlalchemy
pip install flask-mysqldb 【连接的数据库的驱动】
连接配置:
app.config['SQLALCHEMY_DATABASE_URI']="mysql://root:mysql@127.0.0.1:3306/test"
【连接数据库,名称、账号、密码、地址、端口、数据库名】
其他配置:
样式:app.config['xx'] 【】
参数:
动态追踪修改配置:SQLALCHEMY_TRACK_MODIFICATIONS = True
查询时显示原始SQL语句:SQLALCHEMY_ECHO = True
映射binds连接url的字典:SQLALCHEMY_BINDS
显示禁用查询记录(测试调试时使用): SQLALCHEMY_RECORD_QUERIES
显示禁用原生unicode支持:SQLALCHEMY_NATIVE_UNICODE
数据库连接池大小(默认5):SQLALCHEMY_POOL_SIZE
数据库连接池的连接超时时间(默认10):SQLALCHEMY_POOL_TIMEOUT
自动收回连接时间(默认8小时,MYSQL自动为2小时):SQLALCHEMY_POO_RECYCLE
连接数据库(示例)
Posthgres:postgresql://scott:tiger@localhost/mydatabase
MySQL:mysql://scott:tiger@127.0.0.1:1521/sidname
Oracle:oracle://scott:tiger@127.0.0.1:1521/sidname
SQLite:sqlite:absolute/path/to/foo.db
字段类型(类型)
Integer = int(32)
Smalllnteger = in