По какой-то причине, когда я использую дочерние шаблоны с блоками во Flask, мой HTML-контент отображается как дубликаты.Я использую Bootstrap и Bokeh для визуализации графиков.Каждый элемент div в моем дочернем шаблоне Dashboard.html отображается с дубликатами.Кто-нибудь знает, почему это может иметь место?Я неправильно настроил шаблон?
Ниже приведен мой файл layout.html:
Layout.html
<!doctype html>
<html lang="en">
<head>
<link type="text/css" href="index.css" />
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<link rel="stylesheet" href="http://cdn.pydata.org/bokeh/release/bokeh-0.12.16.min.css" type="text/css" />
<script type="text/javascript" src="http://cdn.pydata.org/bokeh/release/bokeh-0.12.16.min.js"></script>
<title>Embed Demo</title>
</head>
<body>
{% block body %}{% endblock %}
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
</body>
</html>
Это мой дочерний файл шаблона:
Dashboard.html
{% extends "layout.html" %}
{% block body %}
{% for plot in plots %}
{% for part in plot %}
<div class="container-fluid">
<div class="row">
<div class="col" id="graphblock">
{{part | safe}}
</div>
<div class="col" id="graphblock">
{{part | safe}}
</div>
</div>
</div>
{% endfor %}
{% endfor %}
{% endblock %}
Вот мой сервер Flask:
Server.py
import random
from flask import Flask, render_template
from bokeh.plotting import figure
from bokeh.embed import components
app = Flask(__name__, static_folder='../static/dist', template_folder='../static/client')
@app.route('/dashboard/')
def show_dashboard():
plots = []
plots.append(make_plot())
return render_template('dashboard.html', plots=plots)
def make_plot():
plot = figure(plot_height=300, sizing_mode='scale_width')
x = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
y = [2**v for v in x]
plot.line(x, y, line_width=4)
script, div = components(plot)
return script, div
if __name__ == '__main__':
app.run(debug=True)