我们都知道 flask 是一个轻量级的 web 框架,相对于其他同类型框架更为灵活、轻便、安全且容易上手。开发者可以随意编写自己想要的项目结构,同时还有很多的第三方库供君选择。但是灵活的同时也带来了相应的问题,比如对很多初学者来说,建的项目结构混乱,不易维护,还有经典的循环导入等问题
循环导入问题
很多初学者喜欢将启动文件和多个路由写在同一个文件中,例如以下代码:
![9de9e17ecb0aeb9397cef00b24ca9652.png](https://i-blog.csdnimg.cn/blog_migrate/234e868698b1c238f41673e60631e192.png)
这样一旦随着视图函数的增多,代码的可维护性会变得越来越差。所以有必要对视图函数进行拆分。
我们将其拆分成两个文件:run.py 和 view.py,其中 run.py 作为程序的启动文件,因为要将路由注册到 flask 核心对象上,所以在 view.py 中需要导入核心对象,同时 run.py 中要导入 view。最终,代码和项目结构如下所示:
![cff2d7e27c8ba32ecb69b5cb057bfbf9.png](https://i-blog.csdnimg.cn/blog_migrate/74e451cd5a4b68c5bbdcfc99e1fa7b03.png)
run.py
1# coding: utf-8
2__author__ = 'Jerry'
3
4from flask import Flask
5
6app = Flask(__name__)
7
8from app.web import view
9
10
11@app.route("/")
12def index():
13 return 'Hello World'
14
15
16if __name__ == '__main__':
17 app.run()
view.py
1# coding: utf-8
2__author__ = 'Jerry'
3from flask import request
4
5from run import app
6
7@app.route("/add")
8def add():
9 name = request.