准备工作:
一. Manager 库:
Manager: 用于管理相关操作端命令和使用相关操作端命令
(1). 安装flask-script: pip install flask-script==2.0.3
(2). 在app.py中 包装 app
from apps import create_app
# Manager类用于管理相关操作端命令和使用相关操作端命令
from flask_script import Manager
# 创建app对象
app = create_app()
manager = Manager(app=app) # 重新包装app
if __name__ == '__main__':
# app.run()
manager.run() # manager运行方式
(3). 使用命令在终端运行:
python app.py runserver
python app.py runserver -h 0.0.0.0 -p 8080
(4). 拓展: 在app.py中 自定义 manager命令
from apps import create_app
from flask_script import Manager
app = create_app()
manager = Manager(app=app)
# 自定义添加命令
@manager.command
def init():
print("初始化")
if __name__ == '__main__':
manager.run()
# 终端运行: python app.py init
二. 数据库相关库 和 配置:
(1). 安装第三方库文件
pip install pymysql : 保持持久化
pip install flask-sqlalchemy==3.0.3 : 实现ORM映射
pip install flask-migrate==2.7.0 : 发布命令工具
(2). settings.py中配置数据库地址
# 配置文件
class Config: # 定义父类当做公共配置
DEBUG = True
# mysql + pymysql ://user:password@hostIp:port/databasename
SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:root@127.0.0.1:3306/flaskday05'
SQLALCHEMY_TRACK_MODIFICATIONS = False # 忽略警告
SQLALCHEMY_ECHO = True # 开发调试
class DevelopmentConfig(Config): # 开发环境
ENV = "development"
class ProductionConfig(Config): # 生产环境
ENV = 'production'
DEBUG = False
(3). 创建ext包 ,编辑__init__.py ,创数据库的建映射对象
(4). 编辑apps / __init__.py,将db数据库映射对象与app进行关联
(5). 编辑app.py 创建数据库的映射关系
Model模型(数据库):
类和表对应关系:
ORM 类 --> 表
类对象 --> 表中的一条数据
(1).在apps / user 创建models.py文件,创建模型类
(2). 在app.py中导入模型类
(3). 在终端使用命令生成表
python app.py db init # 产生一个文件夹 migrations,只需执行一次
python app.py db migrate # 迁移: 自动生成一个版本文件,在migrations/version生成一个.py文件
python app.py db upgrade # 同步: 生成数据库表
python app.py db downgrade # 降级: 数据库版本回退