flask一般项目结构

初始化配置flask项目时,路由和视图是放在启动文件里的,这样不太方便我们后期的整理和查阅!

因此,我们需要将项目启动文件和路由视图分开处理!

  1. 在项目文件下创建一个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对象返回出去
  1. 然后在项目文件下的app.py里引入创建app对象的方法,得到创建好的app对象
from apps import create_app
app = create_app()
if __name__ == '__main__':
    # 运行app模块
    app.run()
  1. 将templates和static文件夹拖到apps这个包内,或者在创建app对象的时候添加以下代码,指定静态文件和模板文件夹的查找位置
    app = Flask(__name__,template_folder='',static_folder='') # 生成app对象
    template_folder和static_folder是指定查找对应静态文件和模板文件的位置

flask蓝图

  1. 在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 '用户中心'
  1. 创建完蓝图对象,需要到包的初始化文件里注册一下蓝图对象
    app.register_blueprint() #括号里绑定对应的蓝图对象
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。