Flask2.0 以后的启动和数据迁移

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 考虑到世面上比较少的flask2.0 的启动和 数据迁移方式的博客, 绝大多数都是基础flask1.1 左右的版本, 涉及了flask_script等第三方, 所以记录下Flask2.0 以后 数据迁移方式的一个变化!

Flask2.0 的启动和数据迁移

考虑到世面上比较少的flask2.0 的启动和 数据迁移方式的博客, 绝大多数都是基础flask1.1 左右的版本, 涉及了

flask_script等第三方, 所以记录下Flask2.0 以后 数据迁移方式的一个变化!

1.第三方库准备

pip install flask
pip install flask-migrate
pip install flask-sqlalchemy
pip install mysqlclient

2.项目目录

flask3.png

3.项目初次启动

配置文件 settings.py

class Config:
    # Mysql数据库配置                 用户名:密码@127.0.0.1:3306/数据库名称
    SQLALCHEMY_DATABASE_URI='mysql://root:root@127.0.0.1:3306/db_name'

初始化app init_app.py

from flask import Flask

from settings import Config

def create_app():
    # 实例化 app
    app = Flask(__name__)

    # 读取配置文件
    app.config.from_object(Config)  

    return app

主运行文件 app.py

from init_app import create_app


# 实例化 应用对象
app = create_app()


@app.route('/')
def index():
    return "<h1>Flask2.0 数据迁移</h1>"


if __name__ == '__main__':
    print(app.url_map)  # 查看项目全部可用路由
    app.run(debug=True)

以上项目启动一般大家都没什么问题,主要是数据迁移问题

4. 项目数据迁移

Mysql客户端-创建数据库

# 1.登录mysql客户端
mysql -u用户 -p密码 
# 2.创建数据库
create database db_name charset=utf8;

模型文件 models.stu.py

from init_app import db

# 专业表
class Sub(db.Model):
    __tablename__ = 'sub'
    id = db.Column(db.Integer, primary_key=True, doc='专业ID', autoincrement=True)
    name = db.Column(db.String(32), doc='专业名称')
    stu = db.relationship('Stu', backref="stus_object", uselist=False)

# 学生表
class Stu(db.Model):
    __tablename__ = 'stu'
    stu_id = db.Column(db.Integer, primary_key=True, autoincrement=True, doc='学生ID')
    name = db.Column(db.String(32), doc='学生姓名')
    age = db.Column(db.Integer, doc='学生年龄')
    snum = db.Column(db.Integer, unique=True, doc='学生学号')
    sub_id = db.Column(db.Integer, db.ForeignKey('sub.id'), doc='专业外键')

初始化app init_app.py

from flask import Flask
from flask_migrate import Migrate
from flask_sqlalchemy import SQLAlchemy

from settings import Config


# 实例化 db
db = SQLAlchemy()


def create_app():
    # 实例化 app
    app = Flask(__name__)
    # 读取配置文件
    app.config.from_object(Config)  

    # db对象绑定app对象
    db.init_app(app)  
    # 管理迁移
    Migrate(app, db)

    return app

主运行文件 app.py

from init_app import create_app

from models.stu import Stu

# 实例化 应用对象
app = create_app()


@app.route('/')
def index():
    return "<h1>Flask2.0 数据迁移</h1>"


if __name__ == '__main__':
    print(app.url_map)  # 查看项目全部可用路由
    app.run(debug=True)

5. 通过终端指令 进行数据迁移

1.通过flask --help 查看 是否有 db指令(如果没有 就是上面代码 顺序问题)

flask --help

flask4.png

2.生成迁移记录文件目录: flask db init

flask db init

flask5.png

3.生成迁移记录文件:flask db migrate -m '1.Stu,Sub'

flask db migrate -m '1.Stu,Sub'

flask6.png

4.迁移数据库:flask db upgrade

flask db upgrade

flask7.png

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
关系型数据库 API 数据库
盘点Flask与数据库的交互插件——Flask-Sqlalchemy
盘点Flask与数据库的交互插件——Flask-Sqlalchemy
27 0
|
10天前
|
监控 安全 数据库
Flask应用部署指南:从开发到生产环境
【4月更文挑战第16天】本文是Flask应用从开发到生产的部署指南,涵盖开发环境准备、应用开发、部署方案选择、生产环境配置、应用部署、监控与维护。确保安装Python、Flask及依赖库,使用文本编辑器或IDE编写代码,关注应用安全与性能。选择WSGI服务器、Docker或云服务平台部署,配置生产环境,确保安全性,然后部署应用并进行监控维护,定期更新修复问题,保证应用稳定运行。
|
11天前
|
开发者 索引 Python
Flask环境搭建与项目初始化
【4月更文挑战第15天】本文指导如何搭建Flask开发环境并初始化项目。首先确保安装Python,然后通过pip安装Flask。创建名为`myflaskapp`的项目目录,包含`app.py`入口文件。在`app.py`中初始化Flask应用,定义路由和视图函数。运行`python app.py`启动开发服务器,访问`http://127.0.0.1:5000/`查看结果。完成基本设置后,可按需求扩展应用功能。
|
18天前
|
Python
通过命令行的方式快速创建一个flask项目
通过命令行的方式快速创建一个flask项目
17 0
|
4月前
|
存储 安全 数据库
Flask 扫盲系列-数据库
Flask 扫盲系列-数据库
|
4月前
|
Linux Docker Python
一条命令迁移 django 服务
一条命令迁移 django 服务
34 0
|
7月前
|
NoSQL 前端开发 关系型数据库
flask框架中的一些常见问题
flask框架中的一些常见问题
|
8月前
|
缓存 负载均衡 监控
Flask 高并发部署方案详细教程!
Flask 高并发部署方案详细教程!
|
8月前
|
JSON NoSQL JavaScript
Flask+MongoDB
Flask+MongoDB
52 0
|
数据库 Python
Python编程:Flask扩展Flask-Migrate迁移数据库
Python编程:Flask扩展Flask-Migrate迁移数据库
103 0