python - 如何使用单个文件而不是装饰器在 Flask 中集中路由?

标签 python routes flask

如果可能的话,我想知道如何使用单个文件(例如: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/

相关文章:

python - 如何在表单完成期间设置外键(python/django)

reactjs - Next.js 路线 : Dynamic vs exact

ruby-on-rails - 如何验证为 Rails 应用程序中的所有路由定义了 Controller 操作?

python - 在 Flask Web 应用程序中正确从 Python 2 md5 库迁移到 Python 3 hashlib 以进行 CCAvenue 集成

python - 如何保存从 python 中的稀疏库创建的稀疏矩阵

python - Django 管理员 : how to disable edit and delete link for foreignkey

python - 自定义交叉验证拆分 sklearn

dynamic - 如何在*Application_Start之后动态添加OData Web Api路由?

python - Flask url_for ('index' , _external=True) 创建具有双ip的url?

python - 如何使用 flask-wtf 为 rest api 禁用 View 的 csrf?