Назначьте переменную сеанса в Jinja2 / flask на html-странице внешнего интерфейса - PullRequest
0 голосов
/ 03 мая 2019

Здравствуйте, у меня проблема с html выбора / опции, где вы можете выбрать номер страницы, поэтому страница 1 из 100, 2 из 200 и т. Д., А затем переходит на страницу 1, 2, 3 ...

Все работает в следующем коде, за исключением того, что внутри кнопки выбора, после нажатия на страницу, которую вы хотите перейти, после обновления страницы она возвращается на страницу 1, она всегда показывает: страница 1 из 100, даже если на самом деле в URL-адресе номер страницы правильный.Я должен использовать переменную сеанса, но проблема в том, что я изо всех сил пытаюсь понять, как использовать его с Flask / Jinja2 непосредственно на HTML-странице.Кто-то может помочь?

, используя {% 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 голосов
/ 03 мая 2019

Как правило, нельзя присвоить атрибуту объекта, используя set, а также синтаксис obj['attr'] или obj.attr (см. документацию ).Тем не менее, вы можете включить расширение выражения выражения и затем установить атрибут с помощью dict update следующим образом:

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

Но, как уже говорилось в комментарии, это на самом деле не делаетсмысл и может быть решен более чисто, используя другие подходы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...