本文共 1620 字,大约阅读时间需要 5 分钟。
#encoding:utf-8from flask_sqlalchemy import SQLAlchemy# SQLAlchemy 会自动的从 app 对象中的 DevConfig 中加载连接数据库的配置项db = SQLAlchemy()db 是 class SQLAlchemy 的实例化对象, 包含了 SQLAlchemy 对数据库操作的支持类集.
#encoding: utf-8from exts import dbclass User(db.Model): __tablename__='user' id = db.Column(db.Integer,primary_key=True,autoincrement=True) telephone = db.Column(db.String(11),nullable=False) username = db.Column(db.String(50),nullable=False) password = db.Column(db.String(100),nullable=False)
这样我们就得到了一个 User models, 该模型是基于 user 表的. 该数据表拥有 4 个字段 id/telephone/username/password 对应这由 class db.Column 实例化出来的 4 个对象, 当 class User 继承自 db.Model 时, SQLAlchemy 与 数据库的连接通过就已经自动的 Ready 了.db.Column: 其构造器的第一个参数是可选的, 如果传入实参时, 表示创建的字段名. 反之, 则默认使用该实例化对象的名字(即 User 的类属性名); 第二个参数指定了字段的数据类型.
然后在manger.py中导入User模型
#encoding:utf-8from flask_script import Managerfrom flask_migrate import Migrate,MigrateCommandfrom demo import appfrom exts import dbfrom models import Usermanager= Manager(app)#使用Migrate绑定app和dbmigrate = Migrate(app,db)#添加迁移脚本的命令到manager中manager.add_command('db',MigrateCommand)if __name__ == '__main__': manager.run()
MigarateCommand会去读取当前导入的模型User并映射到数据库中
最后进入当前项目所在目录:
先初始化当前的数据库环境
python manage.py db init这时候项目会多出一个migrations文件夹
初始化当前项目的一个迁移环境
python manage.py db migrate
然后
python manage.py db upgrade这样我们数据库里面就已经创建好User表了,进入数据库进行查看
mysql -u root -p
use db_demo
show tables
desc user
就可以看到我们已经创建好的User表的结构了
转载地址:http://ytwpi.baihongyu.com/