0. 准备
1. 新建项目目录xxx,并创建虚拟环境
2. 安装开发中使用的依赖基础模块
pip install flask==0.12.4 -i https://pypi.douban.com/simple
pip install flask-redis -i https://pypi.douban.com/simple
pip install flask-session -i https://pypi.douban.com/simple
pip install flask-script -i https://pypi.douban.com/simple
pip install flask-mysqldb -i https://pypi.douban.com/simple
pip install flask-sqlalchemy -i https://pypi.douban.com/simple
pip install flask-migrate -i https://pypi.douban.com/simple
3. 如果第一次安装mysqldb会报错
报错解决https://blog.csdn.net/qq_52385631/article/details/123598155?spm=1001.2014.3001.5501
1. 创建项目目录结构:
项目根目录/
├── application/ # 项目主要逻辑代码保存目录
| ├── settings/ # 项目配置存储目录
│ │ ├ dev.py # 开发阶段的配置文件【本地开发者使用】
│ │ ├ prod.py # 生产阶段的配置文件【线上服务器使用】
| | ├ __init__.py # 项目公共配置文件
│ ├── __init__.py # 项目初始化文件
├── manage.py # 项目的终端管理脚本文件
2. manage.py
from application import init_app
manage = init_app("application.settings.dev")
@manage.app.route('/')
def index():
return 'index'
if __name__ == '__main__':
manage.run()
3. applicatiion/__init__py
,代码:
from flask import Flask
from flask_script import Manager
from application.utils.config import load_config
manager = Manager()
def init_app(config_path):
"""全局初始化"""
# 创建app应用对象
app = Flask(__name__)
# 项目根目录
app.BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# 加载配置
Config = load_config(config_path)
app.config.from_object(Config)
# 初始化终端脚本工具
manager.app = app
return manager
4. 配置
4.1 在application/utils/config.py中准备加载配置的函数代码:
from importlib import import_module
def load_config(config_path):
"""自动加载配置"""
module = import_module(config_path)
name = config_path.split(".")[-1]
if name == "settings":
return module.InitConfig
else:
return module.Config
4.2 编写项目默认配置文件, application/settings/__init__.py
代码:
class InitConfig():
"""项目默认初始化配置"""
DEBUG = True
4.3 application/settings/dev.py
,代码:
from . import InitConfig
class Config(InitConfig):
"""项目开发环境下的配置"""
DEBUG = True
4.4 application/settings/prod.py
,代码:
from . import InitConfig
class Config(InitConfig):
"""项目运营环境下的配置"""
DEBUG = False
5. 修改启动方式
python manage.py runserver -h0.0.0.0 -p5000