结构是这样的
project_dir |__ other_dirs |__ apps | |__ app1 | | |__ __init__.py | | |__ script1.py | | |__ script2.py | |__ app2 | |__ __init__.py | |__ script1.py |__ server.py |__ settings.py |__ other_files
apps中是所有blueprint,每个bp中的__init__.py中有bp初始化和注册函数,它们都在server.py中调用进行注册。
app1.__init__.py
(app2也一样)
# coding: utf-8 from flask import Blueprint bp1 = Blueprint('bp1', __name__) def init_app(app): app.register_blueprint(bp1, url_prefix='/bp1') from project_dir.apps.app1 import script1, script2 # flake8: noqa # 在__init__里面用`import *`是找不到scriptX里面的router的,会返回404哟 # 需要显示的写出模块名称,具体原因有空再看看,知道的朋友就赶紧告诉我吧~嘻嘻
server.py
# -*- coding:utf-8 -*- from flask import Flask from project_dirs.apps import bp1, bp2 app = Flask(__name__) app.config.from_pyfile('settings.py') bp1.init_app(app) bp2.init_app(app) if __name__ == '__main__': app.run(host='0.0.0.0', port=7110)
要用这种结构的代码,必须要在__init__.py中明确的import路由所在的模块名
网友216.*.*.226[Seattle]2022-06-30 05:25
网友54.*.*.91[法国]2022-06-30 05:11
网友220.*.*.165[北京]2022-06-30 04:57
网友185.*.*.7[火星]2022-06-30 04:48
发表评论
亲~ 评论内容是必须的哟! o(∩_∩)o
昵称
邮箱
主页
评论