flask蓝图是为了把文件分开,让项目更清晰,便于维护,跟django的项目目录差不多
蓝图项目结构如下
展开
settings.py是配置文件,所有的配置都在里面
# 在这里自定义配置
DEBUG = True
ENV = 'development' # 开发环境,生产环境:production
apps的__init__.py添加代码如下
from flask import Flask
import settings # 导入配置
from apps.user.view import user_bp # 导入用户模块
def create_app():
# 创建app,并且指定templates、static文件夹位置,一般跟创建apps的目录同级,为了好看放在外面了,或者把文件夹放进来
app = Flask(__name__, template_folder='../templates', static_folder='../static') # app,一个核心对象
app.config.from_object(settings) # 加载配置
# 蓝图
app.register_blueprint(user_bp) # 将蓝图对象注册到app
return app # 返回app对象
user模块下:model.py是模型,view.py 是视图,跟django一样
view.py
from flask import Blueprint
from flask import render_template
# 相当于app
user_bp = Blueprint('user', __name__)
@user_bp.route('/register', methods=['GET', 'POST'], endpoint='register') # 路由,请求方法,反向解析
def register():
'''注册'''
return render_template('user/register.html') # 渲染模板
@user_bp.route('/login', methods=['GET', 'POST'], endpoint='login')
def login():
return '用户登录'
以后每个模块都放在在apps下面,这样结构更清晰