Рубрики
Без рубрики

Показывая данные, которые мы создали на фронте

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

Создание блога с CookieCutter-Django и развертыванием его в Heroku (серия 9 частей)

Теперь, когда мы создали данные для нашего блога, мы узнаем, как показать их, используя Django Orm в этой главе. Чего ждать? Или что?

Django Orm дает удобный способ доступа к базе данных. Это означает, что объектный реляционный Mapper. Другими словами, это более простой способ получить данные из базы данных. Вместо того, чтобы задавать запросы SQL, он отображает атрибуты объектов в их соответствующие таблицы. Сопоставляя данные с отдельной таблицей, используя ORM, мы пишем SQL -запросы, но мы не.

Обратите внимание, что я немного настроил пользовательский интерфейс, чтобы сделать наш фронт.

На нашей домашней странице мы показываем 4 списка блогов, которые мы создали в оболочке Python. Чтобы отобразить его, используя Django Orm, мы создадим для цикла, который захватывает контекст_object_name, который мы указали в Views.py нашего блога списка. Фактически, используйте каждое из контекста_object_name, который мы указали в каждом из представлений, которые мы создали, чтобы получить данные нашей базы данных. Разве это не легко?

# pages/home.html
{% for post in posts %}

{{ post.title }}

...

{{ post.overview }}

{% endfor %}

Обратите внимание на вложенную за петлю для категорий? Мы используем для цикла для цикла через созданные нами данные. Поговорим о том, как Джанго использует сухой принцип, не так ли?

На странице «Подробная информация», поскольку мы проходим только категории каждого поста, мы все равно можем вызвать данные ORM, даже если мы не будем использовать для цикла.

# pages/post_detail.html
{% load static humanize %}

{{ post.title }}

Date posted: {{ post.created_on }}
{% for category in post.categories.all %} #{{ category.title }} {% endfor %}
...

{{ post.body|safe }}

Мы называем категории в теге категории для цикла, чтобы показать все доступные категории, которые мы указали в определенном посте. Затем мы называем Category.Slug, чтобы помочь нам получить правильный URL -адрес пост, который мы просили.

# pages/category_list.html

Category: {{ category | title }}

{% for post in posts %}
...

{{ post.title }}

{% for category in post.categories.all %} #{{ category.title }} {% endfor %}

{{ post.overview }}

{% endfor %}

На наших страницах/Category_list.html мы указываем в нашем теге H1 название категории, которую мы задаем. Мы сделали это, отображая {{category.title}} Анкет Затем мы используем для цикла для фильтрации сообщений текущей категории, которую мы просили, используя представление на основе функции blog_category.

posts = Post.objects.filter(
        categories__slug__contains=category
    )

Страница проектов идет так же, как и на других страницах, поэтому вы должны быть в состоянии, по крайней мере, уже иметь базовое понимание того, как запросить ORM из HTML -шаблонов.

Наша страница контактов использует только 5 строк кода, чтобы сделать его функционировать, так как CookieCutter-Django включает в себя предупреждение на шаблоне страниц/base.html:

{% if messages %}
  {% for message in messages %}
    
{{ message }}
{% endfor %} {% endif %}

И как мы указали в нашем контактном формате, что мы хотим, чтобы оповещение было показано после того, как форма была отправлена, он использует оповещение на шаблоне Base.html, поскольку мы расширили шаблон контакта.

{% extends 'base.html' %}
{% load crispy_forms_tags %}
{% block content %}
{% csrf_token %} {% crispy form %}
{% endblock content %}

Однако, как только мы отправим форму, форма не должна быть на странице, а просто сообщение успеха.

Чтобы исправить это, мы добавим это:

{% if messages %} {% else %}
{% csrf_token %} {% crispy form %}
{% endif %}

Мы можем переместить предупреждение на основе. Html тоже. Сделай это, если хочешь. Я не буду, так как мне понадобится предупреждение о новых функциях в этом блоге.

Последняя важная вещь в форме – это { % csrf_token %} тег шаблона. Это самый простой способ предоставления Django, чтобы защитить нас от подделки по перекрестным запросам.

Согласно Документация Джанго Этот тип атаки возникает, когда вредоносный веб-сайт содержит ссылку, кнопку формы или какой-то JavaScript, который предназначен для выполнения некоторых действий на вашем веб-сайте, используя учетные данные зарегистрированного пользователя, который посещает злой сайт в своем браузере. Мы также не сможем развернуть наш проект в Heroku один раз, если не включим это, как только мы запустим команду, которую я покажу через некоторое время.

Создание блога с CookieCutter-Django и развертыванием его в Heroku (серия 9 частей)

Оригинал: “https://dev.to/highcenburg/showing-the-data-we-created-on-the-frontend-3gfb”