阿小信大人的头像
Talk is cheap. Show me the code. Linus Torvalds

Flask在注册蓝图时4042015-05-21 11:22

结构是这样的

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路由所在的模块名

如果您觉得从我的分享中得到了帮助,并且希望我的博客持续发展下去,请点击支付宝捐赠,谢谢!

若非特别声明,文章均为阿小信的个人笔记,转载请注明出处。文章如有侵权内容,请联系我,我会及时删除。

#Python#   #flask
分享到:
阅读[950] 评论[0]

你可能也感兴趣的文章推荐

本文最近访客

发表评论