如果可能的话,我想知道如何使用单个文件(例如:routes.py
)来映射路由,其中的过程分布在不同的 python 文件/模块中。
我该怎么做?
我对 Flask 和这个还很陌生。我尝试搜索,但我想是因为没有使用正确的术语,我找不到解决方案。
我相信一定有办法。
谢谢。
最佳答案
如您所知,装饰器作为函数工作:
@app.route('/')
def home():
return 'home'
相当于:
def home():
return 'home'
home = app.route('/')(home)
但是 Flask
已经有专门的方法 add_url_rule
了。在route
装饰器中使用。
def home():
return 'home'
app.add_url_rule('/', None, home, {})
因此您可以创建特殊模块,其中将导入 View 函数并使用 add_url_rule
添加路由。不要忘记在使用(导入)之前执行此代码。
add_url_rule
正在创建 Rule
实例并将其添加到 Flask.url_map
,因此您也可以显式创建 Rule
并将其放入 url_map
。但我希望这对你来说不需要。
更新
通过Flask
,您还可以使用Lazily Loading Views
,请参阅文档中的详细信息:http://flask.pocoo.org/docs/patterns/lazyloading/ .
关于python - 如何使用单个文件而不是装饰器在 Flask 中集中路由?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20018631/