12、flask-模型-models
ORM
Flask通过Model操作数据库、不管你数据库的类型是Mysql或者是sqlite、Flask自动帮你生成相应的数据库类型的sql语句、所以不需要关注sql语句和类型、对数据库的操作flask会自动帮我们完成
Flask使用关系映射(Object Relational Mappong, 简称ORM)框架去操控数据库
ORM对象关系映射、是一种程序技术、用于实现面向对象编程语言里不同类型系统的数据之间的转换
将对对象的操作转为原生的sql
优点:
- 易用性,可以有效较少重复sql
- 性能损耗少
- 设计灵活、可以轻松实现复杂的查询
- 移植性好
Flask的ORM
Flask使用python自带的ORM:SQLAlchemy
针对于Flask的支持、安装插件 flask=sqlalchemy
安装:
- pip install flask-sqlalchemy
连接sqlite
SQLLite连接的URI:
- DB_URI = sqlite:///sqlite3.db
连接mysql
USERNAME='root'
PASSWORD='root'
HOSTNAME = 'localhost'
PORT = '3306'
DATABASE = 'ocs'
格式:
- mysql+pymysql://USERNAME:PASSWORD@HOSTNAME:PORT/DATABASE
配置URL:
DB_URI='mysql+pymysql://{}:{}@{}:{}/{}'.format(
USERNAME,
PASSWORD,
HOSTNAME,
PORT,
DATABASE
)
在flask中使用ORM
连接数据库需要指定配置:
app.config['SQLALCHEMY_DATABASE_URI'] = DB_URI #配置连接数据库路径DB_URI
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False #禁止对象追踪修改
SQLite数据库连接不需要额外的驱动,也不需要用户名和密码
#在Flask项目中使用
db = SQLALchemy()
db.init_app(app)
需要安装的包
#安装 flask-sqlalchemy (用于ORM关系对象映射)
- pip install flask-sqlalchemy -i https://pypi.douban.com/simple
- 或:pip install flask-sqlalchemy
#安装 flask-migrate (用于数据迁移)
- pip install flask-migrate -i https://pypi.douban.com/simple
- 或 pip install flask-migrate
#安装 pymysql (mysql驱动)
- pip install pymysql -i https://pypi.douban.com/simple
- 或pip install pymysql