flask一般项目结构
初始化配置flask项目时,路由和视图是放在启动文件里的,这样不太方便我们后期的整理和查阅!
因此,我们需要将项目启动文件和路由视图分开处理!
- 在项目文件下创建一个apps的包,在包的初始化文件里定义一个函数,用来实现app相关的功能
init.py
from flask import Flask
import settings
def create_app():
app = Flask(__name__) # 生成app对象
app.config.from_object(settings) # 加载app的初始化配置
# 注册蓝图
app.register_blueprint() #括号里绑定对应的蓝图对象
return app # 将app对象返回出去
- 然后在项目文件下的app.py里引入创建app对象的方法,得到创建好的app对象
from apps import create_app
app = create_app()
if __name__ == '__main__':
# 运行app模块
app.run()
- 将templates和static文件夹拖到apps这个包内,或者在创建app对象的时候添加以下代码,指定静态文件和模板文件夹的查找位置
app = Flask(__name__,template_folder='',static_folder='') # 生成app对象
template_folder和static_folder是指定查找对应静态文件和模板文件的位置
flask蓝图
- 在apps包里的各个模块包里新建一个view.py,用来写对应的视图和路由关系
from flask import Blueprint # 引入蓝图模块类
# 创建蓝图对象
# 第一个参数是给这个蓝图对象起一个名,第二个是导入名,url_prefix='/user'其实就是路由分发的意思,防止各个蓝图的路由重复
user_bp = Blueprint('user',__name__,url_prefix='/user')
@user_bp.route('/') #由蓝图对象实现的路由
def user_home():
return '用户中心'
- 创建完蓝图对象,需要到包的初始化文件里注册一下蓝图对象
app.register_blueprint() #括号里绑定对应的蓝图对象