如何从另一个中调用一个Flask视图?

Dan*_*mov 12 python flask flask-login

我在一个蓝图模块中有一个JSON API,在另一个蓝图模块中有一个Web前端.

我想通过在发送到客户端之前嵌入一些它在前端视图模板中需要的JSON来完成客户端JS代码必须要做的一些AJAX请求,就像我发现的这个要点一样.

如何从另一个Flask视图调用一个Flask视图?

我可以直接调用view函数,但是request对应于"外部"请求,这会混淆被调用的API函数.我尝试过使用test_request_context它几乎可以工作,但我无法弄清楚如何保持身份验证(我正在使用Flask-Login).

Bur*_*ash 21

您可以使用Flask测试客户端:

client = app.test_client()
response = client.get('/your/url', headers=list(request.headers))
Run Code Online (Sandbox Code Playgroud)

要使用Flask-Login保持身份验证,您需要传递请求的标头.

由于克里斯McKinnel回答一个相关的问题.

  • 像魅力一样工作!你也可以使用`from flask import current_app`并使用current_app.test_client() (2认同)