1- 模拟循环导入现象
-
创建文件
loop_main.py
和文件loop_goods.py
在loop_main.py
中写入如下代码:from flask import Flask from loop_goods import goods app = Flask(__name__) @app.route("/") def index(): return "index page" if __name__ == "__main__": print(app.url_map) app.run()
在
loop_goods.py
中写入如下代码:from loop_main import app @app.route("/goods") def goods(): return "goods page"
-
运行文件,发生循环导入,报错如下:
-
报错原因解析,即产生了循环导入问题
2- 相应解决方案
-
第一种:有一方 作出让步(不推荐)
-
第二种:函数后补装饰器(耦合性高)
-
第三种:使用蓝图实现模块划分操作(推荐)
-
注意事项,即便使用蓝图,也可能产生循环导入问题
解决方案是进行交错导入,编码时规范下就可避免
3- 蓝图的额外用法
-
添加访问前缀
-
创建蓝图对象,当两者不同名的时候
-
当蓝图模块自成一体的时候,指定模板文件与静态文件所在位置