Каким образом можно передать информацию из базы данных в HTML страницу?

Как можно загрузить данные из базы данных PostgreSQL на сайт, созданный с использованием Django REST framework (DRF) и шаблонов страниц?
  • 6 апреля 2024 г. 3:29
Ответы на вопрос 2
Для передачи информации из базы данных в HTML страницу можно воспользоваться языком программирования, таким как Python, и фреймворками, например Django. 

Для загрузки данных из базы данных PostgreSQL на сайт, созданный с использованием Django REST framework (DRF) и шаблонов страниц, следует выполнить следующие шаги:

1. Создать модели данных в Django для взаимодействия с базой данных PostgreSQL.
2. Создать сериализаторы в DRF для преобразования данных из моделей в формат JSON.
3. Создать API views в DRF для обработки запросов и возврата данных в формате JSON.
4. На frontend-части сайта использовать AJAX запросы для получения данных через API views.
5. Для шаблонов страниц использовать Django templates и передавать данные в виде контекста.

Таким образом, данные из базы данных PostgreSQL будут загружены на сайт с помощью DRF и шаблонов страниц.
покажу на своём простом примере. <br/> <br/> .создаём нужную модель: <br/> <pre><code class="python"># models.py
class Violation(models.Model):
    rules = models.TextField('Правила')
    consequences = models.TextField('Последствия нарушения')

    def __str__(self):
        return self.rules

    class Meta:
        verbose_name = 'Нарушение'
        verbose_name_plural = 'Нарушения'</code></pre> <br/> <br/> потом проводим миграции в терминале: <br/> <code>python manage.py makemigrations</code> <br/> миграции требуются, чтобы джанго создал нужную "сетку" в базе данных, чтобы потом туда созранять данные. <br/> <br/> после чего создаём обьекты модели или в панели администратора или через команду в пайтон: <br/> <pre><code class="python">Violation.objects.create(title=title, violations=violations)</code></pre> <br/> объекты будут хранится в базе данных. <br/> <br/> в представлении,  где мы рендерим страницу, получаем все объекты модели Violation из базы данных и формируем словарь "context " в который передаём ключи с полученными обьектами.(в данном случае передаём объект violations': violations) <br/> # views .py <br/> <pre><code class="python">def rules(request):
    # Получаем все объекты модели Violation из базы данных
    violations = Violation.objects.all()

    # Передаем объекты модели в контекст шаблона
    context = {
        'title': 'rules',
        'violations': violations,
    }

    return render(request, 'main/rules.html', context)</code></pre> <br/> <br/> чтобы переданные объекты обработать в HTML в джанго предусмотрены шаблонные переменные  в формате {{  }} <br/> смотрим наш HTML который будет рендерить джанго: <br/> <br/> <pre><code class="html">{% extends 'application_in_question/base.html' %}

{% block title %}
{{ title }}
{% endblock %}

{% block content %}
&lt;div class="light_pink_font_color"&gt;
    &lt;h1&gt;&lt;b&gt;Правила и наказания&lt;/b&gt;&lt;/h1&gt;
&lt;/div&gt;
&lt;div&gt;
    &lt;table class="custom_table"&gt;
        &lt;thead&gt;
            &lt;tr&gt;
                &lt;th&gt;&lt;b&gt;Правила&lt;/b&gt;&lt;/th&gt;
                &lt;th&gt;&lt;b&gt;Наказания&lt;/b&gt;&lt;/th&gt;
            &lt;/tr&gt;
        &lt;/thead&gt;
        &lt;tbody&gt;
            {% for violation in violations %}
            &lt;tr&gt;
                &lt;td&gt;{{ violation.rules }}&lt;/td&gt;
                &lt;td&gt;&lt;b&gt;{{ violation.consequences }}&lt;/b&gt;&lt;/td&gt;
            &lt;/tr&gt;
            {% endfor %}
        &lt;/tbody&gt;
    &lt;/table&gt;
&lt;/div&gt;
{% endblock %}</code></pre> <br/> <br/> тут мы видим наш тайтл {{ title }} и цикл for в котором перебираем "предметы" всех обьектов {{ violations }} <br/> <pre><code class="html">{% for violation in violations %}
            &lt;tr&gt;
                &lt;td&gt;{{ violation.rules }}&lt;/td&gt;
                &lt;td&gt;&lt;b&gt;{{ violation.consequences }}&lt;/b&gt;&lt;/td&gt;
            &lt;/tr&gt;
            {% endfor %}</code></pre>
Похожие вопросы