Форум сайта python.su
Есть фласк приложение, в котором функция парсинга, которая возвращает словарь. Можно ли с помощью шаблонизатора Jinja вывести в веб (не знаю как правильно выразиться, по адресу http://127.0.0.1:5000/)
вывести полученный функцией словарь? Как их связать? Как в html файле объявить, что вот у этой функции возьми значение и выведи его.
И в целом, jinja2 ведь нужна для оптимизации и оформления выводимой информации на странице, так?
Офлайн
Можно вывести словарь.
Ты можешь и просто его вывести, без заморочек, чтобы просто посмотреть его внутренности. Для этого нужно его перед передачей преобразовать в строку через str().
Также ты можешь его использовать в Jinja-шаблонах. Для этого ты должен его подать в render_template() в качестве именованного аргумента, а в шаблоне обращаться к этому имени и брать ключи через точку.
Пример:
app.py
@app.route('/page') def page(): dct = {'a': 1, 'b': 2} return render_template('page.html', mydict=dct)
<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)
Офлайн
py.user.nextСпасибо огромное! Благодаря тебе я понял суть, пересмотрел гайды по jinja и стало все понятно)
Можно вывести словарь.Ты можешь и просто его вывести, без заморочек, чтобы просто посмотреть его внутренности. Для этого нужно его перед передачей преобразовать в строку через str().Также ты можешь его использовать в Jinja-шаблонах. Для этого ты должен его подать в render_template() в качестве именованного аргумента, а в шаблоне обращаться к этому имени и брать ключи через точку.Пример:app.py
Офлайн
TheFailOnЕсли такая потребность возникла, то что-то не то, значит, передаётся. Либо ты передаёшь неправильно, либо ты передаёшь грязные данные. То есть передаваться в шаблон уже всё чистое должно.
Но возник еще вопрос, может знаешь, в жинже можно мусор весь из словаря почистить, запятые, скобки всякие.
Отредактировано py.user.next (Ноя. 16, 2019 00:40:38)
Прикреплённый файлы:
examples.tar.gz (2,2 KБ)
Офлайн
py.user.nextСпасибо, буду разбираться)
Офлайн