Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 14, 2019 20:18:59

TheFailOn
Зарегистрирован: 2019-10-26
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Flask и Jinja

Есть фласк приложение, в котором функция парсинга, которая возвращает словарь. Можно ли с помощью шаблонизатора Jinja вывести в веб (не знаю как правильно выразиться, по адресу http://127.0.0.1:5000/)
вывести полученный функцией словарь? Как их связать? Как в html файле объявить, что вот у этой функции возьми значение и выведи его.
И в целом, jinja2 ведь нужна для оптимизации и оформления выводимой информации на странице, так?

Офлайн

#2 Ноя. 15, 2019 05:06:36

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9716
Репутация: +  842  -
Профиль   Отправить e-mail  

Flask и Jinja

Можно вывести словарь.

Ты можешь и просто его вывести, без заморочек, чтобы просто посмотреть его внутренности. Для этого нужно его перед передачей преобразовать в строку через str().

Также ты можешь его использовать в Jinja-шаблонах. Для этого ты должен его подать в render_template() в качестве именованного аргумента, а в шаблоне обращаться к этому имени и брать ключи через точку.

Пример:

app.py

  
@app.route('/page')
def page():
    dct = {'a': 1, 'b': 2}
    return render_template('page.html', mydict=dct)

page.html
<html>
<head></head>
<body>
This is a page.
<div>
a = {{mydict.a}}, b = {{mydict.b}}
</div>
</body>
</html>



Отредактировано py.user.next (Ноя. 15, 2019 05:09:11)

Офлайн

#3 Ноя. 15, 2019 23:16:44

TheFailOn
Зарегистрирован: 2019-10-26
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Flask и Jinja

py.user.next
Можно вывести словарь.Ты можешь и просто его вывести, без заморочек, чтобы просто посмотреть его внутренности. Для этого нужно его перед передачей преобразовать в строку через str().Также ты можешь его использовать в Jinja-шаблонах. Для этого ты должен его подать в render_template() в качестве именованного аргумента, а в шаблоне обращаться к этому имени и брать ключи через точку.Пример:app.py
Спасибо огромное! Благодаря тебе я понял суть, пересмотрел гайды по jinja и стало все понятно)
Но возник еще вопрос, может знаешь, в жинже можно мусор весь из словаря почистить, запятые, скобки всякие. Или уже в функции нужно этим заниматься?

Офлайн

#4 Ноя. 16, 2019 00:37:27

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9716
Репутация: +  842  -
Профиль   Отправить e-mail  

Flask и Jinja

TheFailOn
Но возник еще вопрос, может знаешь, в жинже можно мусор весь из словаря почистить, запятые, скобки всякие.
Если такая потребность возникла, то что-то не то, значит, передаётся. Либо ты передаёшь неправильно, либо ты передаёшь грязные данные. То есть передаваться в шаблон уже всё чистое должно.

При этом в шаблонах Jinja можно и функции применять. Есть функции встроенные, есть функции самодельные.

Приложил два примера: один пример - создание глобальной функции шаблона; второй пример - создание фильтра шаблона.


tags: flask



Отредактировано py.user.next (Ноя. 16, 2019 00:40:38)

Прикреплённый файлы:
attachment examples.tar.gz (2,2 KБ)

Офлайн

#5 Ноя. 18, 2019 22:35:58

TheFailOn
Зарегистрирован: 2019-10-26
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Flask и Jinja

py.user.next
Спасибо, буду разбираться)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version