最近使用Flask写一个测试平台,后端使用flask框架,因为是菜鸟,所以遇到很多坑,今天就是第一个坑,使用蓝图来注册实现多个模块集成在一个入口
先看看我的demo的目录
- demo1 package包含一个demo1的模块
- demo2 package包含一个demo2的模块
- 最外层包含一个manager.py的启动文件
demo1的代码:
from flask import Blueprint, Flask
app = Flask(__name__)
demo1_test = Blueprint("login", __name__)
@demo1_test.route("/demo1")
def test():
return "this is demo1"
demo2的代码:
from flask import Blueprint, Flask
app = Flask(__name__)
demo2_test = Blueprint("case", __name__)
@demo2_test.route("/demo2")
def test():
return "this is demo2"
manager.py的代码:
# encoding:utf-8
# !/usr/bin/env python
from flask import Flask
from demo1.damo1 import demo1_test
from demo2.demo2 import demo2_test
app = Flask(__name__)
app.register_blueprint(demo1_test)
app.register_blueprint(demo2_test)
if __name__ == '__main__':
print(app.url_map)
app.run()
然后先看结果,执行manager.py文件
在网页链接输入
我们可以看见就可以把2个路由到一个启动文件了
其实蓝图的原理很简单:
- 在各个view模块初始化一个蓝图
- 在启动文件去注册蓝图,再运行就可以使用了
官网地址:https://dormousehole.readthedocs.io/en/latest/blueprints.html