Evgenii Legotckoi
Evgenii LegotckoiҚаң. 6, 2019, 7:48 Т.Ж.

Django - Сабақ 043. shema.org қолдауымен нан үгіндісін қалыптастыруға арналған үлгі тегтері

Мен schema.org белгілеуін қолдаумен, сонымен қатар bootstrap CSS қолдауымен нан үгіндісін қалыптастыруға арналған кірістірілген тегтерді іске асырумен бөлісемін.

Бұл тегтерді сайттың дамуын жылдамдату үшін жазды. Қазір жұмыс әлдеқайда жылдам жүріп жатыр, өйткені код ықшамдалады және нан үгіндісін белгілеудегі қателерді түзету оңайырақ болды, өйткені енді кодты бір жерде ғана түзету керек.


Сізде кейбір жалпы функционалдылыққа жауап беретін қолданба өзегі бар делік және оның барлық кірістірілген тегтерді жасау үшін core.py файлы бар template_tags каталогы бар делік. 4 нан үгіндісі құрамдастарын қалыптастыру үшін 3 қосу тегтерін және бір қарапайым тегті қосыңыз.

  • breadcrumb_schema - ағымдағы схеманы schema.org белгілеуінен сақтау
  • breadcrumb_home - сайттың түбірін қалыптастыру үшін
  • breadcrumb_item - торап құрылымы ағашының элементтерін қалыптастыруға арналған
  • breadcrumb_active – сайттың ағымдағы бетінің элементін қалыптастыру үшін

core.py

Осы тегтері бар python файлының мазмұнын қараңыз.

# -*- coding: utf-8 -*-

from django import template

register = template.Library()


@register.simple_tag
def breadcrumb_schema():
    return "http://schema.org/BreadcrumbList"


@register.inclusion_tag('core/breadcrumb_home.html')
def breadcrumb_home(url='/', title=''):
    return {
        'url': url,
        'title': title
    }


@register.inclusion_tag('core/breadcrumb_item.html')
def breadcrumb_item(url, title, position):
    return {
        'url': url,
        'title': title,
        'position': position
    }


@register.inclusion_tag('core/breadcrumb_active.html')
def breadcrumb_active(url, title, position):
    return {
        'url': url,
        'title': title,
        'position': position
    }

Breadcrumb_schema() тегінде бәрі түсінікті болса, ол жай ғана белгілеу схемасының анықтамасын қайтарады, содан кейін басқа тегтермен көбірек сұрақтар болады.

Барлық белгілеу үш негізгі параметр бойынша қалыптасады:

  • url - өнім бетіне сілтеме
  • тақырып - Бет тақырыбы
  • позиция - белгілеудегі барлық элементтер нөмірленуі керек. Мысалы, 0, 1, 2, 3, т.б.

breadcrumb_home() үшін мен ешқандай позицияны қоспаймын, себебі оның мағынасы жоқ, әрқашан 0 позициясы болады. Сондай-ақ, менің жағдайда тақырыптың орнына белгіше бар, сондықтан үлгі басқаша көрінеді. бір.

Қалған екі тег жағдайында біз орынды көрсетуіміз керек.

Үлгілер

Мен үй белгішесі туралы дереу тапсырыс беремін. Мен Material Design Icons бумасын пайдаланып жатырмын, сондықтан mdi mdi-home бар span тегі болады. сыныптар.

breadcrumb_home.html

<li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
    <a itemprop="item" href="{{ url }}">
        <span class="mdi mdi-home">
            <span class="d-none" itemprop="name">{{ title }}</span>
        </span>
    </a>
    <meta itemprop="position" content="1" />
</li>

breadcrumb_item.html

<li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
    <a itemprop="item" href="{{ url }}">
        <span itemprop="name">{{ title }}</span>
    </a>
    <meta itemprop="position" content="{{ position }}" />
</li>

breadcrumb_active.html

<li class="breadcrumb-item active" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
    <link itemprop="item" href="{{ url }}">
    <span itemprop="name">{{ title }}</span>
    <meta itemprop="position" content="{{ position }}" />
</li>

Үлгідегі тегтерді қолдану

Мен мақала үлгісінен кодтың бір бөлігін беремін, онда ол ұрыс жағдайында қолданылады.

{% extends 'home/base.html' %}
{% load core %}
<ul class="breadcrumb bg-light" itemscope itemtype="{% breadcrumb_schema %}">
  {% url 'home:index' as home_index_url %}
  {% breadcrumb_home home_index_url 'EVILEG' %}
  {% url 'knowledge:index' as knowledge_index_url %}
  {% breadcrumb_item knowledge_index_url _('Articles') 2 %}
  {% breadcrumb_item article.section.get_absolute_url article.section.title 3 %}
  {% breadcrumb_active article.get_absolute_url article.title 4 %}
</ul>

Қорытынды

Енді мақала үлгісіндегі осы 9 жолдың орнына дұрыс белгілеу үшін әрбір компонентті жазу керек екенін елестетіп көріңіз. Код жолдарының саны үш есе өседі және осы монотонды функционалдылықтың ұлғаюымен сайт кодын сақтау және оны жылдам түзету қиындай түседі.

Рекомендуем хостинг TIMEWEB
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.

Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!

Пікірлер

Тек рұқсаты бар пайдаланушылар ғана пікір қалдыра алады.
Кіріңіз немесе Тіркеліңіз
AD

C++ - Тест 004. Указатели, Массивы и Циклы

  • Нәтиже:50ұпай,
  • Бағалау ұпайлары-4
m
  • molni99
  • Қаз. 25, 2024, 10:37 Т.Қ.

C++ - Тест 004. Указатели, Массивы и Циклы

  • Нәтиже:80ұпай,
  • Бағалау ұпайлары4
m
  • molni99
  • Қаз. 25, 2024, 10:29 Т.Қ.

C++ - Тест 004. Указатели, Массивы и Циклы

  • Нәтиже:20ұпай,
  • Бағалау ұпайлары-10
Соңғы пікірлер
ИМ
Игорь МаксимовҚар. 22, 2024, 8:51 Т.Ж.
Django - Оқулық 017. Теңшелген Django кіру беті Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
Evgenii Legotckoi
Evgenii LegotckoiҚаз. 31, 2024, 11:37 Т.Ж.
Django - Сабақ 064. Python Markdown кеңейтімін қалай жазуға болады Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup
A
ALO1ZEҚаз. 19, 2024, 5:19 Т.Ж.
Qt Creator көмегімен fb3 файл оқу құралы Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
ИМ
Игорь МаксимовҚаз. 5, 2024, 4:51 Т.Ж.
Django - Сабақ 064. Python Markdown кеңейтімін қалай жазуға болады Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
d
dblas5Шілде 5, 2024, 8:02 Т.Ж.
QML - Сабақ 016. SQLite деректер қоры және онымен QML Qt-та жұмыс істеу Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
Енді форумда талқылаңыз
m
moogoҚар. 22, 2024, 4:17 Т.Ж.
Mosquito Spray System Effective Mosquito Systems for Backyard | Eco-Friendly Misting Control Device & Repellent Spray - Moogo ; Upgrade your backyard with our mosquito-repellent device! Our misters conce…
Evgenii Legotckoi
Evgenii LegotckoiМаусым 24, 2024, 12:11 Т.Қ.
добавить qlineseries в функции Я тут. Работы оень много. Отправил его в бан.
t
tonypeachey1Қар. 15, 2024, 3:04 Т.Ж.
google domain [url=https://google.com/]domain[/url] domain [http://www.example.com link title]
NSProject
NSProjectМаусым 4, 2022, 12:49 Т.Ж.
Всё ещё разбираюсь с кешем. В следствии прочтения данной статьи. Я принял для себя решение сделать кеширование свойств менеджера модели LikeDislike. И так как установка evileg_core для меня не была возможна, ибо он писался…

Бізді әлеуметтік желілерде бақылаңыз