在前端html页面的Jinja2 / flask中分配会话变量

时间:2019-05-03 08:15:14

标签: python flask jinja2

您好,我在选择/选项html时遇到问题,您可以在其中选择页码,因此第1页(共100页),第2页(共200页)等...然后转到第1、2、3页...

除以下内容外,所有内容均在以下代码中起作用:在选择按钮内,单击要转到的页面,刷新页面后,它返回到第1页,始终显示:第1页(共100页),即使实际上在url中,页码也是正确的。我应该使用一个会话变量,但是问题是我正在努力了解如何直接在html页面中将其与Flask / Jinja2一起使用。有人可以帮忙吗?

使用{% set session['page'] = page %}然后使用{{ session['page'] }}会给我语法错误:

TemplateSyntaxError: expected token 'end of statement block', got '['

{% set session['page'] = page %}
    <select onchange="window.location.href=this.value">

        {%- for page in range (1,(form.total_PAGE.data | int) + 1 ) %}

            <option value="{{ page }}">{{ session['page'] }}/{{ form.total_PAGE.data }}</option>
        {%- endfor %}
    </select>

1 个答案:

答案 0 :(得分:0)

通常,您无法使用setobj['attr']语法(请参见the documentation)来使用obj.attr分配给对象属性。但是,您可以启用expression-statement extension,然后使用dict update设置属性,如下所示:

{% do session.update({'page': page}) %}

但是正如评论中已经提到的那样,这确实没有意义,可以使用其他方法更干净地解决。