【发布时间】:2017-02-01 19:57:00
【问题描述】:
编辑:简化了 for 循环,以便更容易说明问题,但问题仍然相同。
我正在尝试渲染一个烧瓶 jinja2 模板,以从图像名称列表中渲染图像轮播。 images 变量显示在我的调试器中,当我单步执行它时它看起来正在循环,但由于某种原因它没有呈现。
# flask app file
@app.route('/results', methods=['POST', 'GET'])
@login_required
def newpage(page=1):
"""
Renders search page
"""
form = genus_form()
user = current_user
if request.method == 'POST':
if form.validate_on_submit():
gen = Genus.query.filter(Genus.genus_name.like(form.genus.data)).first()
spec = Species.query.filter_by(GID=gen.GID).first()
images = Images.query.filter_by(UID=spec.UID).all()
if images:
images = [i.FileName for i in images]
form.genus.data = ''
render_template('results.html', form=form, images=images)
else:
return render_template('results.html', form=form)
return render_template('results.html', form=form)
这是 jinja 模板中的相关部分:
{% extends 'base.html' %}
{% block title %} WCTC Image Review {% endblock %}
{% block scripts %}
{{ super() }}
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<script>
$(document).ready(function () {
$("#genus").autocomplete({
delay: 100,
source: function (request, response) {
// Suggest URL
var suggestURL = "{{ url_for('autocomplete') }}?term=%QUERY";
suggestURL = suggestURL.replace('%QUERY', request.term);
// JSON Request
$.ajax({
method: 'GET',
dataType: 'json',
jsonCallback: 'jsonCallback',
url: suggestURL
})
.success(function(data){
response(data);
});
}
});
});
$('#myCarousel').carousel({
interval: 40000
});
$('.carousel .item').each(function(){
var next = $(this).next();
if (!next.length) {
next = $(this).siblings(':first');
}
next.children(':first-child').clone().appendTo($(this));
if (next.next().length>0) {
next.next().children(':first-child').clone().appendTo($(this)).addClass('rightest');
}
else {
$(this).siblings(':first').children(':first-child').clone().appendTo($(this));
}
});
</script>
{% endblock %}
{% block content %}
<div>
<form action="/results" method="POST" id="search">
<fieldset>
<div>
{{ form.genus(placeholder="Genus") }}
</div>
<div>
<button type="submit" class="btn btn-default">Submit</button>
</div>
</fieldset>
</form>
</div>
{% if images %}
{% for filename in images %}
<div>
{{ filename }}
</div>
{% endfor %}
{% endif %}
{% endblock %}
任何帮助将不胜感激。
【问题讨论】:
-
你能展示你的完整路线功能吗?
-
已编辑以显示完整的路线功能。
-
我已经用调试器完成了它,它的行为肯定和我期望的一样,将图像列表作为变量图像传递给模板,并且图像变量显示在调试器中,但是那么它就不会在 {% if images %} 块内呈现任何内容。
-
这应该可以正常工作。我猜你的图片列表是空的。尝试手动传递一个列表。
标签: python python-2.7 flask jinja2