@gosha_tst

Как организовать добавление новых html элементов с расширением базы данных?

Делаю блог на flask. Проблема в создании новостной ленты: добавляется новая "статья" в базу данных => создается новый div со своим стилем, текстом внутри и ссылкой, на которую он ведет при нажатии. В каждом столбце БД хранятся заголовок "статьи", генерируемая на нее ссылка, дата создания и сам текст. Как можно организовать автоматическое добавление html-блоков в новостную ленту? Через JavaScript? Если да, то как тогда вызвать функцию JavaScript через Flask?
  • Вопрос задан
  • 153 просмотра
Решения вопроса 1
leahch
@leahch
3D специалист. Dолго, Dорого, Dерьмово.
Офф кос, тут скупые на слова ребята, а я добрый, я расскажу. :-D
Во фласке есть шаблонизатор, обычно это jinja.pocoo.org
Там есть циклы, выглядят примерно так
{% extends "layout.html" %}
{% block news %}
  <div class="news--block">
  {% for item in news %}
    <div class="news--item">
    <h1>{{ item.header }}</h1>
    {{ item.body }}
   </div>
  {% endfor %}
  </ul>
{% endblock %}

Так вот из этого примера: news - массив объектов "новости", которые мы итерируем циклом и выводим в блок news.

В методе делаем примерно так:
from flask import render_template

@app.route('/')
def hello(name=None):
    news = [{"header":"Fake news: Trump died", "body":"Sorry, world."}, {"header":"Fake news: Trump now alive", "body":"Sorry, world again."}]
    return render_template('main.html', news=news)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы