我有一个FastAPI应用程序,如果我手动移动一些路径(通过更改浏览器地址栏中的/<path>
),它们可以正常工作。
@task.get('/tasks', response_model=list[Task], tags=["Tasks"])
def find_all_tasks():
print("\n[*] Showing all Tasks\n")
return tasksEntity(conn.local.task.find())
我的/<root>
路由加载了一个index.html
文件,其中显示了一个按钮。我想做的是,每当我单击按钮时,将上述路由添加到url中(即127.0.0.1/tasks
)。
我使用Jinja2Templates
从API的不同路径呈现HTML中的数据,但我不知道如何从前端HTML按钮移动它们。
2条答案
按热度按时间yuvru6vn1#
前端
您可以使用
url_for()
函数,例如:或
或
或者,您可以使用相对路径,如here和here所述,传递路由名称和任何必要的路径/查询参数。例如:
如果您的端点包含 path 和/或 query 参数,请查看this answer和this answer,了解如何包含这些参数。
后端
然后,您的
/tasks
端点应该返回一个新的Jinja 2TemplateResponse
,其中list
为tasks
。例如:在
tasks.html
模板中,您可以在大括号内输出循环变量,如this answer及以下所示:xpcnnkqh2#
根据这个answer,你可以使用
app.url_path_for('find_all_tasks')
来得到你的路线的url。你可以把它作为一个参数传递给Jinja,然后在你的模板中你想要这样的东西(拍摄于here)
其中
find_all_tasks_route
是传递给渲染器的参数。