我目前在一个正在使用flask的项目中工作,jinja在其中通过块驱动前端,目的是创建一种动态页面。但是,我目前停留在如何引用新页面/组件而不必在导航时刷新它们的问题上。
例如,在当前版本中,如果我通过按页面上的按钮来导航“前进”,则将加载新页面(静态html),但是没有任何显示,如果我随后刷新页面,则内容将正确加载该页面。如果我改为尝试加载具有静态内容(例如文本)的页面,则该页面会正确地加载。
到目前为止,我的理论是,这是由于我们在按钮按下时加载的D3图形加载速度不够快,无法立即调用,因此应实施某种侦听器或延迟。
但是,问题是应该如何正确实施。
在应用程序的当前状态下,我们已转为使用href链接来引用flask中的页面路由。我们试图放置一个“完成”检查器来查看内容加载功能是否运行,但是没有成功。但是,我们可能没有正确实现该功能。
在第一个html模板中:
{% extends "index.html" %}
{% block content %}
<body>
<div class="container-fluid">
<h1 class="mt-4">Simple Sidebar</h1>
<canvas id="chart_1", height=40></canvas>
<div class="form-group">
<label for="comment">Comment:</label>
<textarea class="form-control" rows="5" id="comment"></textarea>
</div>
<button type="button" class="btn btn-default"><a href=" {{ url_for('step_2') }} ">Next</a></button>
<script type="text/javascript">
</script>
</div>
<script type="text/javascript" src="{{ url_for('static', filename='js/chart_1.js') }}"></script>
</body>
{% endblock content %}
路由到Flask中的下一个模板
@app.route("/step_2")
def step_2():
return render_template("chart_2.html", methods = ['GET'])
我没有收到任何错误消息,尽管它可以正常工作,但没有达到预期的目的。