如何通过使用 Flask 按下按钮来渲染动态模板?

问题描述 投票:0回答:1

我是一个烧瓶新手,我想知道如何通过按下另一个模型中的按钮来动态渲染模型中的模板。类似的东西

<button href = /view > `

我想要渲染这段代码

`

{% this_has_to_be_true %}
<div id="somediv> </div>
{% endif %}`

有什么功能可以让我这样做吗?请注意,我不想显示代码 当我向视图 /view 发出正常的 GET 请求时。

提前致谢。

我尝试使用flask

url_for
函数并尝试在其中传递参数,但它不起作用。比如:

`@app.route('/view/<param>')
def fun(param):
if param:
 render_template('template.html',this_has_to_be_true=param)
else:
 render_template('template.html')`

我收到了一个错误,例如here,它也不适合我的路线,因为它修改了我的子域的构建方式(我认为 /view/like 之类的东西无法正常工作)。 我还尝试使用另一条路线 /view-supp 并使用 jquery 并创建另一条路线 /view-supp 但同样,我不知道如何重定向。

python flask jinja2
1个回答
0
投票

要实现基于 Flask 中按钮单击的模板动态渲染,您可以使用

onclick
以及 Flask 路由。这是一个基本方法:

首先,在 HTML 模板 (

index.html
) 中,您可以为动态呈现的内容提供按钮和占位符:

<body>
    <button onclick="location.href='/view/True'">Render Content</button>
    <button onclick="location.href='/view/False'">Remove Conetnt</button>
    {% if this_has_to_be_true == 'True' %}
    <div id="dynamicContent"> This content is dynamically rendered!</div>
    {% endif %}
</body>

然后,在 Flask 应用程序中,您可以处理请求并动态渲染模板:

from flask import Flask, render_template

app = Flask(__name__)

@app.route('/view')
@app.route('/view/<string:param>')
def index(param='False'):
    return render_template('index.html', this_has_to_be_true=param)

if __name__ == '__main__':
    app.run(debug=True)

通过此设置,当单击按钮时,一个值将作为链接发送到 Flask 应用程序中的

/view
url_for('index', param='True')
路由。然后 Flask 路由使用所需的上下文渲染
index.html
,这将刷新页面,但内容将保持不变。

如有疑问请询问..

© www.soinside.com 2019 - 2024. All rights reserved.