在前端HTML页面中的Jinja2 /烧瓶中分配会话变量



你好,我有一个选择/选项html的问题,您可以在其中选择页码,因此第1页,共100、2 of 200等...然后转到第1页,2,3 ...

除了在"选择"按钮内,单击您要去的页面之后,所有内容都在以下代码中起作用,在刷新页面后,它返回第1页,它始终显示:第1页,共100页,共100页即使实际在URL中,页码是正确的。我应该使用会话变量,但问题在于我正在努力理解如何直接在HTML页面中使用烧瓶/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>

通常,您不能使用set分配给对象Atribute,否则既不使用obj['attr']obj.attr语法(请参阅文档(。但是,您可以启用表达式词扩展名,然后使用以下dict更新设置属性:

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

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

我已经测试了托马斯·林哈特(TomášLinhart(提到的内容,但对我不起作用,因为我没有更新Expression语句扩展名并修改默认值为Jinja2 flask中的会话变量有效的内容是:

  {% if session.update({session_var_name: []}) %}{% endif %}

最新更新