[英]Python flask jinja2 template variable contexts. Can't render variables
編輯:簡化了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 %}
任何幫助將不勝感激。
添加return
到此行:
return render_template('results.html', form=form, images=images)
模板應如下所示:
{% if images %}
{% for filename in images %}
<div>
<img src="{{ filename }}">
</div>
{% endfor %}
{% endif %}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.