flask中数据库迁移
database_migrate.py
import pymysql from flask import Flask from flask_migrate import Migrate,MigrateCommand from flask_script import Manager from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) manager = Manager(app) app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:mysql@127.0.0.1:3306/Flask_test' app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True db = SQLAlchemy(app) pymysql.install_as_MySQLdb() # TODO 解决:Mysqldb 不兼容 python3.5 以后的版本 # 第一个参数是flask的实现,第二个参数是sqlalchemy数据库实例 migrate = Migrate(app,db) # manager是flask-scriptde 实例,这条语句在flask-script中添加一个db命令 manager.add_command('db',MigrateCommand) # 定义模型Role class Role(db.Model): # 定义表名 __tablename__ = 'roles' # 定义列对象 id = db.Column(db.Integer,primary_key=True) name = db.Column(db.String(64),unique=True) user = db.relationship('User',backref='role') # repr() 方法显示一个可读字符串 def __repr__(self): return 'Role:'.format(self.name) # 定义用户 class User(db.Model): __tablename__ = 'users' id = db.Column(db.Integer,primary_key=True) username = db.Column(db.String(64),unique=True,index=True) # 设置外键 role_id = db.Column(db.Integer,db.ForeignKey('roles.id')) def __repr__(self): return 'User:'.format(self.username) if __name__ == '__main__': manager.run()
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/178535.html原文链接:https://javaforall.net
