分开Flask `app.route` 块
我在使用 Flask
的时候,有一个 route
路由功能,但随着我应用的不断构建,链接变得越来越多,搞得很乱。
如果我想把这些路由分开或者分组到一个单独的文件里,我该怎么做呢?
@app.route('/', methods=['GET'])
def index():
return render_template('index.html')
@app.route('/mylink', methods=['GET'])
def get_mylink():
return render_template('mylink.html')
或者,有没有办法把 route
路由进行 package
尺寸的管理呢?比如说,
import myrouter
myrouter.Run()
1 个回答
1
当我的应用变得越来越复杂时,我把路由和功能分成了不同的文件,但并不是完全按照你所建议的那样。
如果你的应用遵循典型的包结构,比如有一个首页和一个博客页面:
/app
/templates
/blog.html
/index.html
/__init__.py
/models.py
/views.py
那么你可以考虑把 views.py
文件变成一个叫 views
的文件夹,并在这个文件夹里为每一组相关的路由创建一个 .py 文件。例如:
/app
/templates
/blog.html
/index.html
/views
/blog.py
/main.py
/__init__.py
/models.py
你只需要把每组 @app.route()
装饰器和对应的函数放到合适的文件里。所以对于首页,你可以把这个和其他一些通用的路由(比如登录/登出)放到
@app.route('/', methods=['GET'])
def index():
return render_template('index.html')
在 views
文件夹里的 main.py
文件中。你需要在 app/__init__.py
中导入这些内容,使用 from app.views import main, blog
。别忘了在 views 文件夹里放一个空的 __init__.py
文件。