flask+mysql网站开发,数据迁移总结
flask进行数据迁移:
1、用pycharm专业版创建一个Flask应用 app.py
from flask import Flask
app = Flask(__name__)
@app.route("/",method=["GET"])
def index():
return "index page"
if __name__ == '__main__':
app.run()
2、与app.py同目录下创建一个ext.py文件,用来初始化SQLAlchemy,生成db实例(此处需要安装pymysql+flask_sqlalchemy)
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
3、与app.py同目录下,建立flask配置文件config.py(注:本文讲解的程序使用的是mysql8)
class config:
# 数据库的配置信息
HOSTNAME = '127.0.0.1'
PORT = '3306'
DATABASE = 'flask'
USERNAME = 'root'
PASSWORD = 'root'
DB_URI = 'mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8'.format(USERNAME, PASSWORD, HOSTNAME, PORT, DATABASE)
SQLALCHEMY_DATABASE_URI = DB_URI
4、在app.py文件中将数据库实例与Flask应用程序相关联,并加载数据库配置文件
from flask import Flask
app = Flask(__name__)
# 将数据库实例与Flask应用程序相关联
from exts import db
db.init_app(app)
from config import config
# 从 Python 对象中加载配置
app.config.from_object(config)
@app.route("/",method=["GET"])
def index():
return "index page"
if __name__ == '__main__':
app.run()
5、与app.py同目录下新建一个models.py文件,创建数据库模型
from exts import db
# 定义用户模型
class UserModel(db.Model):
__tablename__ = "tbl_users"
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
username = db.Column(db.String(20), nullable=False, unique=True)
mobile = db.Column(db.String(11), nullable=False, unique=True)
6、安装数据迁移的第三方库 Flask-Migrate并且绑定到Flask应用程序和数据库实例, 【 pip install Flask-Migrate 】 ,代码如下app.py所示:
from flask import Flask
#此处注意,如果数据库模型没有创建在本文件,那么需要在此处引入,否则后面将迁移应用到数据库可能不会成功
from models import *
app = Flask(__name__)
# 将数据库实例与Flask应用程序相关联
from exts import db
db.init_app(app)
from config import config
# 从 Python 对象中加载配置
app.config.from_object(config)
# Flask-Migrate 扩展中用于绑定 Flask 应用程序和数据库的方法
Migrate(app, db)
@app.route("/",method=["GET"])
def index():
return "index page"
if __name__ == '__main__':
app.run()
7、进行数据迁移
以下命令在该项目所在的虚拟环境下执行
1、初始化一个迁移仓库
flask db init
2、创建迁移脚本
flask dn migrate
3、把迁移应用到数据库中
Flask db upgrade
至此,数据库迁移成功
上一篇: 基于SSM框架的培训
下一篇: 【补充】Python