【发布时间】:2014-02-15 22:04:26
【问题描述】:
我在一个蓝图模块中有一个 JSON API,在另一个模块中有一个 Web 前端。
我想通过在前端视图模板中嵌入一些它需要的 JSON 来减少客户端 JS 代码必须发出的一些 AJAX 请求,然后再将其发送到客户端 like in this gist I found。
如何从另一个 Flask 视图调用一个 Flask 视图?
我可以直接调用视图函数,但request 会对应“外部”请求,这会混淆被调用的 API 函数。我试过using test_request_context,它几乎可以工作,但我不知道如何保持身份验证(我正在使用 Flask-Login)。
【问题讨论】:
-
我会采用您用来从 AJAX 调用视图中检索数据的逻辑并将其放入另一个函数中。此功能不应依赖于身份验证。然后,从两个视图中调用该函数。
-
@Mark:这就是我通常所做的,但 JSON 函数依赖于
request对象来生成分页 URL 和其他一些东西。我不想将它们全部重写以显式传递endpoint、request.args等。我还需要在生成的 JSON 中使用此分页信息,以便客户端知道如何获取下一页。我同意这不是最优雅的解决方案,但它最适合我。
标签: python flask-login flask