flask ORM创建
安装SQLAlchemy
pip3 install sqlalchemy
Flask需要使用 flask-sqlalchemy 支持包
pip3 install flask-sqlalchemy
创建数据库
create database flask default charset utf8 collate utf8_general_ci;
配置连接数据库
app.config['SQLALCHEMY_DATABASE_URI']="mysql://用户名:密码@数据库服务器地址:端口号/数据库名称"
app.config['SQLALCHEMY_DATABASE_URI']="mysql://root:123456@localhost:3306/flask"
创建SQLAlchemy的实例
from flask_sqlalchemy import SQLAlchemy db = SQLAlchemy(app)
在程序中通过 db 操作数据库
定义模型:
class MODELNAME(db.Model): __tablename__ = "TABLENAME"#可以不写,默认表名将类名小写 COLUMN_NAME = db.Column(db.TYPE,OPTIONS)#属性名,对应表中列名
TYPE类型:
类型名 python类型
Integer int
SmallInteger int
BigInteger int
Float float
String str
Text str
Boolean bool
Date datetime.date
Time datetime.time
DateTime datetime.datetime
OPTIONS:
选项名 说明
autoincrement 如果设置为True表示该列要自增长
primary_key 如果设置为True表示该列为主键
unique 如果设置为True表示该列的值唯一
index 如果设置为True表示该列的值加索引
nullable 如果设置为True表示该列允许为空
default 指定该列的默认值
迁移:一般不用这两种
将实体类创建到数据库:db.create_all()
将所有的数据表全部删除:db.drop_all()
迁移
用manager启动项目:
from flask_script import Manager
manager = Manager(app)
manager.run()
定义好模型之后迁移模型映射回数据库:
from flask_migrate import Migrate,MigrateCommand
migrate = Migrate(app,db)
manager.add_command('db',MigrateCommand)
命令行输入:
初始化数据库,只执行一次
python3 xxx.py db init
生成中间文件
python3 xxx.py db migrate
映射回数据库
python3 xxx.py db upgrade