条件:
蓝图对象的名字与模块文件夹的名字相同,在app目录下方,例如:
app
-auth
-admin
...
在auth模块中的__init__中创建auth模块的蓝图对象,蓝图名称auth
admin等其他模块格式与auth相同
def create_app(config_name):
# 参加Flask应用程序实例
app = Flask(__name__)
# 导入配置参数
config_mode = config[config_name]
app.config.from_object(config_mode)
mail.init_app(app)
filenames = os.listdir("app")
# 利用os模块找到蓝图对象所在的路径
for filename in filenames:
if os.path.isdir("app/"+filename) and os.path.exists('app/'+filename+'/__init__.py'):
bp = import_string('app.'+filename+':'+filename)
app.register_blueprint(bp)
print(app.url_map)
print(app.config.get("NAME"))
return app
import_string(import_name, silent=False)
- import_name:要导入的对象的模块或对象名称
- silent:如果设置为True,则忽略导入错误,相反则返回None
import_name 格式一般为:
'app.auth:auth'
silent参数可以省略
网友评论