如何使用url_for()将数据传递到另一条路由?Fastapi和Amp;JJIA2 [英] how to use url_for() to pass data to another route? fastapi & jinja2

查看:0
本文介绍了如何使用url_for()将数据传递到另一条路由?Fastapi和Amp;JJIA2的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想从JJIA2模板调用一个Fastapi路由,并将数据传递给被调用的路由。我所有的尝试都失败了。 我在JJIA2模板中尝试了类似{{ url_for('function1', uustr=data.uustr, interval=1) }}

的内容

这是我要呼叫的fast api路由(出于演示目的,简化了语法):

@app.get("/updates/data/{uustr}",response_class=HTMLResponse)
async def function1(request: Request, uustr:str, interval:int):

  return"""
<html>
    <head>
        <title>{{ uustr }}</title>
    </head>
    <body>
        <h1>{{ interval }}</h1>
    </body>
</html>
"""

我收到此错误:

    raise ValueError('context must include a "request" key') 
ValueError: context must include a "request" key

有谁有主意吗?

推荐答案

我发现了一个非常简单的解决方案,无需使用url_for()

如果来自瓶子世界的人在这里遇到了类似的问题,我的解决方案是: 我在我的JJIA2模板中创建了一个简单的HTML按钮:

<button onclick="myFunction()">pass data to route</button>

我创建了一个非常简单的Java脚本函数,用于将数据传递给ROUTE:

<script>
function myFunction() {
  window.location.href = "/updates/data/{{data.uustr}}?interval=2";
}
</script>

就是这样。

这篇关于如何使用url_for()将数据传递到另一条路由?Fastapi和Amp;JJIA2的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆