FlaskSQLAlchemy框架使用学习笔记
- SQLAlchemy是一个关系型数据库框架,它提供了高层的 ORM 和底层的原生数据库的操作。flask-sqlalchemy 是一个简化了 SQLAlchemy 操作的flask扩展。
- SQLALchemy 实际上是对数据库的抽象,让开发者不用直接和 SQL 语句打交道,而是通过 Python 对象来操作数据库,在舍弃一些性能开销的同时,换来的是开发效率的较大提升
安装
- 安装 flask-sqlalchemy
pip install flask-sqlalchemy
- 如果连接的是 mysql 数据库,需要安装 mysqldb
pip install flask-mysqldb
创建完flask项目后,从flask_sqlalchemy中导入SQLAlchemy并实例化,代码如下
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy(app)
数据库连接设置
- 在 Flask-SQLAlchemy 中,数据库使用URL指定,而且程序使用的数据库必须保存到Flask配置对象的 SQLALCHEMY_DATABASE_URI 键中
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:mysql@127.0.0.1:3306/monkey'
- 其他设置:
# 是否追踪修改,一般设置为False,因为浪费资源,并且后期版本中将取消此设置
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
# 查询时会打印显示原始SQL语句
app.config['SQLALCHEMY_ECHO'] = True
- 配置完成需要去 MySQL 中创建项目所使用的数据库
$ mysql -uroot -p
$ 输入密码
$ create database moneky charset utf8;
数据库连接和sqlalchemy连接数据库代码一样,定义好数据库连接后,我们就可以定义模型了(注意:模型继承的类是db.Model,直接从db导入即可),代码如下:
class User(db.Model):
__tablename__ = "user"
id = db.db.Column(db.Integer , primary_key=True , autoincrement=True)
name = db.db.Column(db.String(50) , nullable=False)
常用的SQLAlchemy字段类型
类型名 | python中类型 | 说明 |
---|---|---|
Integer | int | 普通整数,一般是32位 |
SmallInteger | int |