HTML страницы Π² Django. Render

ΠžΡΠ½ΠΎΠ²Ρ‹ HTML ΠΏΠΎΠ·Π°Π΄ΠΈ, самоС врСмя Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ Π² ΡƒΡŽΡ‚Π½Ρ‹ΠΉ ΠΌΠΈΡ€ бэкСнда. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ «Анфиса» ΠΈ Yatube ΡƒΠΆΠ΅ Π½Π°ΡƒΡ‡ΠΈΠ»ΠΈΡΡŒ Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° запросы ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Ρ‚Π΅ΠΊΡΡ‚ΠΎΠ²ΡƒΡŽ строку:

# ice_cream/views.py
from django.http import HttpResponse
# Главная страница
def index(request):    
    return HttpResponse('Главная страница') 

Если view-функция ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ Ρ‚Π΅ΠΊΡΡ‚ΠΎΠ²ΡƒΡŽ строку, Ρ‚ΠΎ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π±Ρ‹ Π΅ΠΉ Π½Π΅ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ HTML, вСдь это Ρ‚ΠΎΠΆΠ΅ тСкстовая строка!

# ice_cream/views.py
from django.http import HttpResponse
# Главная страница
def index(request):
    html_content = '<html><head><title>Анфиса для Π΄Ρ€ΡƒΠ·Π΅ΠΉ</title></head><body>'
    html_content += '<h2>Главная страница</h2>'
    html_content += '</body></html>'    
    return HttpResponse(html_content) 

Π­Ρ‚ΠΎΡ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ (с тСхничСской Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния), Π½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ уТасно Π½Π΅ΡƒΠ΄ΠΎΠ±Π½ΠΎ:

  • HTML-ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ сотни строк;
  • нСпонятно, Π³Π΄Π΅ начинаСтся ΠΈ заканчиваСтся Ρ‚ΠΎΡ‚ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ HTML-Ρ‚Π΅Π³;
  • слоТно Π»ΠΎΠ²ΠΈΡ‚ΡŒ ошибки;
  • синтаксис Π½Π΅ подсвСчиваСтся;
  • Π² ΠΊΠΎΠ΄Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡˆΠ°Π½Ρ‹ Π»ΠΎΠ³ΠΈΠΊΠ° (Python) ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ (HTML).

HTML β€” ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ, Python β€” ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ

РСшСниС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π΅ΡΡ‚ΡŒ: HTML-ΠΊΠΎΠ΄ выносят Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ (ΠΈΡ… Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚Β HTML-ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹) ΠΈ ΠΏΡ€ΠΈ нСобходимости ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ ΠΈΡ… Ρ‡Π΅Ρ€Π΅Π·Β Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΒ β€”Β loader:

from django.http import HttpResponse
# Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ.
from django.template import loader
def index(request):
    # Π—Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌ шаблон;
    # ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ хранят Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ.
    template = loader.get_template('ice_cream/index.html')
    
# Π€ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅ΠΌ шаблон
return HttpResponse(template.render({}, request))

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π² ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° запрос Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½ HTML ΠΈΠ· шаблона ice_cream/index.html.Π•ΡΡ‚ΡŒ ΠΈ Π±ΠΎΠ»Π΅Π΅ изящный синтаксис: Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ HTML-ΠΊΠΎΠ΄ ΠΈΠ· шаблонов ΠΌΠΎΠΆΠ½ΠΎ посрСдством Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΒ render()Β ΠΈΠ·Β Ρ€Π°Π·Π΄Π΅Π»Π°Β django.shortcuts.Β **Π­Ρ‚Π° функция Π΄Π΅Π»Π°Π΅Ρ‚ Ρ‚ΠΎ ΠΆΠ΅ самоС, Ρ‡Ρ‚ΠΎ ΠΈ ΠΊΠΎΠ΄, ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅, Π½ΠΎ Ρ‡Π°ΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ прячСт Β«ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡ‚Β»:

from django. shortcuts import render
def index(request):
    template = 'ice_cream/index.html'
    return render(request, template) 

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ HTML-шаблонов

Π’ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ «Анфиса для Π΄Ρ€ΡƒΠ·Π΅ΠΉΒ» Π΅ΡΡ‚ΡŒ Ρ‚Ρ€ΠΈ view-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Ρ‚Ρ€ΠΈ HTML-шаблона:

  • шаблон Π³Π»Π°Π²Π½ΠΎΠΉ страницы:Β index.html;
  • шаблон для для списка сортов ΠΌΠΎΡ€ΠΎΠΆΠ΅Π½ΠΎΠ³ΠΎ:Β ice_cream_list.html;
  • шаблон ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎ ΠΌΠΎΡ€ΠΎΠΆΠ΅Π½ΠΎΠ΅:Β ice_cream_detail.html.

ΠΠ΅Ρ…ΠΎΡ€ΠΎΡˆΠΎ, Ссли ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Π²Π°Π»ΡΡ‚ΡŒΡΡ Π² ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°: Π½Π°Π΄ΠΎ ΠΈΡ… ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ. Но ΠΊΡƒΠ΄Π°?Π•ΡΡ‚ΡŒ Π΄Π²Π΅ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ схСмы хранСния шаблонов: Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ прилоТСния ΠΈ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ шаблонов Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ прилоТСния

Π’ дирСкториях ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉΒ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ ΠΏΠ°ΠΏΠΊΠΈΒ /templates/имя_прилоТСния/: ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, хранят Π² Π½ΠΈΡ…. Π’Π°ΠΊΠΎΠΉ способ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Β«Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ прилоТСния». Если ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ этой схСмС Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ «Анфиса для Π΄Ρ€ΡƒΠ·Π΅ΠΉΒ», Ρ‚ΠΎ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ прилоТСния ice_creamΒ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π»Π΅ΠΆΠ°Ρ‚ΡŒ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈΒ /ice_cream/templates/ice_cream/:

anfisa
β”œβ”€β”€ anfisa     # Главная ΠΏΠ°ΠΏΠΊΠ° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
β”œβ”€β”€ ice_cream  # Папка прилоТСния
β”‚   β”œβ”€β”€ templates <-- ДирСктория для шаблонов
β”‚   β”‚   └── ice_cream       <-- ДирСктория для шаблонов прилоТСния ice_cream
β”‚   β”‚       β”œβ”€β”€ ice_cream_detail.
html # Π¨Π°Π±Π»ΠΎΠ½ для ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΌΠΎΡ€ΠΎΠΆΠ΅Π½ΠΎΠ³ΠΎ β”‚ β”‚ β”œβ”€β”€ ice_cream_list.html # Π¨Π°Π±Π»ΠΎΠ½ со списком ΠΌΠΎΡ€ΠΎΠΆΠ΅Π½ΠΎΠ³ΠΎ β”‚ β”‚ └── index.html # Π¨Π°Π±Π»ΠΎΠ½ Π³Π»Π°Π²Π½ΠΎΠΉ страницы β”‚ β”œβ”€β”€ __init__.py β”‚ β”œβ”€β”€ admin.py β”‚ β”œβ”€β”€ apps.py β”‚ β”œβ”€β”€ models.py β”‚ β”œβ”€β”€ test.py.py β”‚ β”œβ”€β”€ urls.py β”‚ └── views.py └── manage.py

Π­Ρ‚ΠΎΡ‚ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ…ΠΎΡ€ΠΎΡˆ Π² Ρ‚Π΅Ρ… случаях, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ планируСтся ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΠ°ΠΊΠ΅Ρ‚ Python (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π»Π΅Π³ΠΊΠΎ Π²ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚). Π’ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ Yatube Ρ‚Π°ΠΊΠΈΡ… ΠΏΠ»Π°Π½ΠΎΠ² Π½Π΅Ρ‚, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚.

Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ шаблонов Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

Π’ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈΒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° создаётся ΠΏΠ°ΠΏΠΊΠ°Β 

/templates, Π² Π½Π΅ΠΉ β€” ΠΏΠ°ΠΏΠΊΠΈ, Π½Π°Π·Π²Π°Π½Π½Ρ‹Π΅ ΠΏΠΎ ΠΈΠΌΠ΅Π½Π°ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΈ Π² этих ΠΏΠ°ΠΏΠΊΠ°Ρ… хранятся ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹, относящиСся ΠΊ прилоТСниям ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π’Π°ΠΊΠΎΠΉ порядок хранСния шаблонов Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Β«Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Β».Богласно этому ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρƒ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ прилоТСния ice_creamΒ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ «Анфиса для Π΄Ρ€ΡƒΠ·Π΅ΠΉΒ» Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π»Π΅ΠΆΠ°Ρ‚ΡŒ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈΒ /templates/ice_cream/:

anfisa
β”œβ”€β”€ anfisa     #  Главная ΠΏΠ°ΠΏΠΊΠ° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
β”œβ”€β”€ ice_cream  #  Папка прилоТСния
β”œβ”€β”€ templates   <-- ДирСктория для шаблонов
β”‚    └── ice_cream       <-- ДирСктория для шаблонов прилоТСния ice_cream
β”‚        β”œβ”€β”€ ice_cream_detail. html # Π¨Π°Π±Π»ΠΎΠ½ страницы для ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΌΠΎΡ€ΠΎΠΆΠ΅Π½ΠΎΠ³ΠΎ
β”‚        β”œβ”€β”€ ice_cream_list.html   # Π¨Π°Π±Π»ΠΎΠ½ страницы со списком ΠΌΠΎΡ€ΠΎΠΆΠ΅Π½ΠΎΠ³ΠΎ
β”‚        └── index.html            # Π¨Π°Π±Π»ΠΎΠ½ Π³Π»Π°Π²Π½ΠΎΠΉ страницы
└──  manage.py 

ИмСнно эту схСму ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… «Анфиса» ΠΈ Yatube.

Настройки ΡˆΠ°Π±Π»ΠΎΠ½ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° Django

Π—Π° настройки шаблонов Π² Django ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ пСрСмСнная TEMPLATESΒ Π² Ρ„Π°ΠΉΠ»Π΅Β settings.py:

  • BACKEND: ΠΏΠΎΠ΄ этим ΠΊΠ»ΡŽΡ‡ΠΎΠΌ указываСтся, ΠΊΠ°ΠΊΠΎΠΉ язык шаблонов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅.Π’ Django сущСствуСт Π΄Π²Π° языка Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ шаблонов:Β Django Template Language (DTL)Β ΠΈΒ Jinja2. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ β€”Β DjangoTemplates. ΠžΡΡ‚Π°Π²ΠΈΠΌ Π΅Π³ΠΎ.
  • DIRS: здСсь указываСтся список Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ, Π³Π΄Π΅ Django Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΊΠ°Ρ‚ΡŒ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹. Π§Ρ‚ΠΎΠ±Ρ‹ Django искал ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΡƒΡ‚ΡŒ Π΄ΠΎ ΠΏΠ°ΠΏΠΊΠΈ с шаблонами.ΠŸΡƒΡ‚ΡŒ ΠΊ ΠΏΠ°ΠΏΠΊΠ΅ с шаблонами указываСтся ΠΎΡ‚ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (ΠΎΡ‚ ΠΏΠ°ΠΏΠΊΠΈ, Π³Π΄Π΅ Π»Π΅ΠΆΠΈΡ‚Β 
    manage. py
    ).АдрСс ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ дирСктория хранится Π² константС BASE_DIR, эта константа создаётся автоматичСски ΠΏΡ€ΠΈ создании ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.Π£ΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡƒΡ‚ΡŒ ΠΊ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ с шаблонами Π»ΡƒΡ‡ΡˆΠ΅ Π½Π΅ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, Π° посрСдством ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Β path.joinΒ ΠΈΠ· стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈΒ os:Β os.path.join(BASE_DIR, 'templates').ΠŸΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅ ΠΏΡƒΡ‚ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ Π½Π° любой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС: Π² Windows ΠΏΡƒΡ‚ΠΈ ΠΊ дирСкториям Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ символом 
    \
    , Π° Π² macOS ΠΈ Linux ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚Β /; Ссли ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡƒΡ‚ΠΈ явно, Π±Π΅Π· примСнСния os.path.join(), ΠΏΡ€ΠΈ пСрСносС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈΠ· систСмы Π² систСму ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.
  • APP_DIRSΒ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Π½ΡƒΠΆΠ½ΠΎ Π»ΠΈ ΠΈΡΠΊΠ°Ρ‚ΡŒ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ Π² ΠΏΠ°ΠΏΠΊΠ°Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ). МоТно ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ Π½Π°Β False, Π½ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ Π½Π΅ Π½Π°Π΄ΠΎ. Π’Π΅Π΄ΡŒ Π°Π΄ΠΌΠΈΠ½-Π·ΠΎΠ½Π° Django β€” это встроСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π° Π² Π½Ρ‘ΠΌ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ хранятся Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ прилоТСния.

Π’ΠΎΡ‚ ΠΊΠ°ΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ список TEMPLATESΒ Π² Ρ‚ΠΎΠΌ случаС, ΠΊΠΎΠ³Π΄Π° ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ хранятся Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°:

# anfisa/settings.
py
TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', # Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ: Π˜ΡΠΊΠ°Ρ‚ΡŒ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° 'DIRS': [os.path.join(BASE_DIR, 'templates')], # ΠžΡΡ‚Π°Π²Π»ΡΠ΅ΠΌ True: ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ встроСнных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π°Π΄ΠΌΠΈΠ½ΠΊΠΈ) # Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ Π² дирСкториях ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ] }, } ]

АдрСса Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ с шаблонами часто выносят Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ константы. Π’Π°ΠΊ ΠΊΠΎΠ΄ получаСтся Π±ΠΎΠ»Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½Ρ‹ΠΌ.

# anfisa/settings.py
# ΠŸΡƒΡ‚ΡŒ ΠΊ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ с шаблонами вынСсСн Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ:
TEMPLATES_DIR = os.path.join(BASE_DIR, 'templates')
TEMPLATES = [
    {
        'BACKEND': 'django. template.backends.django.DjangoTemplates',
        # Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ: Π˜ΡΠΊΠ°Ρ‚ΡŒ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
        'DIRS': [TEMPLATES_DIR],        
        'APP_DIRS': True, 
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ]
        },
    }
] 

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Ρ€Ρ‚ΠΎΠ²Π°Ρ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°: структура ΠΏΠ°ΠΏΠΎΠΊ Π² templates

Π’ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈΒ /templatesΒ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ созданы Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ ΠΏΠ°ΠΏΠΊΠΈ, Π½Π°Π·Π²Π°Π½Π½Ρ‹Π΅ ΠΏΠΎ ΠΈΠΌΠ΅Π½Π°ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Ρ‚ΠΎΡ‡Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΌΡƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ ΠΊΠ°ΠΊΠΎΠΉ шаблон соотвСтствуСт: вСдь Π² ΠΊΠ°ΠΊΠΈΡ…-Ρ‚ΠΎ ситуациях ΠΈΠΌΠ΅Π½Π° шаблонов для Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ.

anfisa
β”œβ”€β”€ anfisa/     #  Главная ΠΏΠ°ΠΏΠΊΠ° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
β”œβ”€β”€ ice_cream/  #  Папка прилоТСния
β”œβ”€β”€ templates  <-- ДирСктория для шаблонов
β”‚    └── ice_cream
β”‚        β”œβ”€β”€ ice_cream_detail.
html # Π¨Π°Π±Π»ΠΎΠ½ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΌΠΎΡ€ΠΎΠΆΠ΅Π½ΠΎΠΌ β”‚ β”œβ”€β”€ ice_cream_list.html # Π¨Π°Π±Π»ΠΎΠ½ списка ΠΌΠΎΡ€ΠΎΠΆΠ΅Π½ΠΎΠ³ΠΎ β”‚ └── index.html # Π¨Π°Π±Π»ΠΎΠ½ Π³Π»Π°Π²Π½ΠΎΠΉ страницы └── manage.py

Π¨Π°Π±Π»ΠΎΠ½Ρ‹ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Flask β€” Π•ΠΊΠ°Ρ‚Π΅Ρ€ΠΈΠ½Π° ЧСрняк

Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ я Π±ΡƒΠ΄Ρƒ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² использовании шаблонов.
Π’ Flask Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ язык шаблонов Jinja для Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° HTMLβ€‘ΡˆΠ°Π±Π»ΠΎΠ½ΠΎΠ². Π¨Π°Π±Π»ΠΎΠ½ β€” это Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊ фиксированноС, Ρ‚Π°ΠΊ ΠΈ динамичСскоС содСрТимоС. Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΈΠ· вашСго прилоТСния (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, страницу индСкса ΠΈΠ»ΠΈ страницу Π²Ρ…ΠΎΠ΄Π° Π² систСму), Jinja позволяСт Π²Π°ΠΌ ΠΎΡ‚Π²Π΅Ρ‡Π°Ρ‚ΡŒ шаблоном HTML, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, нСдоступныС Π² стандартном HTML, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ if, Ρ†ΠΈΠΊΠ»Ρ‹ for, Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ наслСдования шаблонов. Π­Ρ‚ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ эффСктивно ΠΏΠΈΡΠ°Ρ‚ΡŒ простыС Π² обслуТивании HTML‑страницы. Jinja Ρ‚Π°ΠΊΠΆΠ΅ автоматичСски экранируСт HTML для прСдотвращСния Cross-Site Scripting (XSS) Π°Ρ‚Π°ΠΊ с использованиСм сцСнариСв сайта.


1. Визуализация шаблона ΠΈ использованиС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…
Π‘ΠΎΠ·Π΄Π°Π² просто Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Flask, я Ρ€Π΅ΡˆΠΈΠ»Π° ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ использованиС шаблонов. Для этого, я создала Ρ„Π°ΠΉΠ» app2.py.

Π’ Π½Π΅Π³ΠΎ добавляСм ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:


from flask import Flask, render_template

app = Flask(__name__)


@app.route('/')
def hello():
    return render_template('index.html')

Π’ этом Π±Π»ΠΎΠΊΠ΅ ΠΊΠΎΠ΄Π° ΠΌΡ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ класс Flask ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ render_template() ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π° flask. ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ класс Flask для создания экзСмпляра прилоТСния Flask с ΠΈΠΌΠ΅Π½Π΅ΠΌ app. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ опрСдСляСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ просмотра (которая являСтся Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ Python, которая Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΡ‚Π²Π΅Ρ‚ HTTP) с ΠΈΠΌΠ΅Π½Π΅ΠΌ hello(), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€ app.route(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ ΠΎΠ±Ρ‹Ρ‡Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ просмотра. Π­Ρ‚Π° функция прСдставлСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ render_template() для Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ„Π°ΠΉΠ»Π° шаблона с ΠΈΠΌΠ΅Π½Π΅ΠΌ index.html.

Π—Π°Ρ‚Π΅ΠΌ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» шаблона index. html Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ с ΠΈΠΌΠ΅Π½Π΅ΠΌ templates. Flask ΠΈΡ‰Π΅Ρ‚ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ templates, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ называСтся шаблонами, поэтому имя Π²Π°ΠΆΠ½ΠΎ. Для этого Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ шаблонов:


mkdir templates

Π—Π°Ρ‚Π΅ΠΌ ΠΎΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ index.html ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ HTML ΠΊΠΎΠ΄:


    FlaskApp
     

Welcome to FlaskApp!

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ устанавливаСм Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, добавляСм Hello World! сообщСниС Π² Π²ΠΈΠ΄Π΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° h2 ΠΈ создаСм сообщСниС Welcome to FlaskApp! ΠΊΠ°ΠΊ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ h3. Π”Π°Π»Π΅Π΅ запускаСм нашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. (ΠΊΠ°ΠΊ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΎΡΡŒ Π²Ρ‹ΡˆΠ΅)

ΠžΡΡ‚Π°Π²ΠΈΠΌ сСрвСр Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹ΠΌ ΠΈ ΠΎΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ Ρ„Π°ΠΉΠ» app2.py для рСдактирования. Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ datetime ΠΈΠ· стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Python ΠΈ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ index(), Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ„Π°ΠΉΠ» выглядСл ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:


import datetime
from flask import Flask, render_template

app = Flask(__name__)


@app. route('/')
def hello():
    return render_template('index.html', utc_dt=datetime.datetime.utcnow())

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ datetime ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π»ΠΈ Π² шаблон index.html ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ с ΠΈΠΌΠ΅Π½Π΅ΠΌ utc_dt со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ datetime.datetime.utcnow(), ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ являСтся Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π΄Π°Ρ‚ΠΎΠΉ ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ UTC.

Π—Π°Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π° страницС индСкса, ΠΎΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ Ρ„Π°ΠΉΠ» index.html для рСдактирования. ΠžΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠ΅ΠΌ Ρ„Π°ΠΉΠ», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ выглядСл ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:


    FlaskApp
     

Welcome to FlaskApp!

{{ utc_dt }}

ΠœΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ h3 со ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΌ {{…}} для ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ utc_dt. ΠžΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Ρ‘ΠΌ Π½Π° Π³Π»Π°Π²Π½ΡƒΡŽ страницу:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ создали страницу индСкса с шаблоном HTML Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Flask, отрисовали шаблон, ΠΏΠ΅Ρ€Π΅Π΄Π°Π»ΠΈ ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΠ»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΈΠ·Π±Π΅ΠΆΠΈΠΌ повторСния ΠΊΠΎΠ΄Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ наслСдованиС шаблонов.

2. ИспользованиС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° наслСдования шаблонов
На этом этапС ΠΌΡ‹ создадим Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ шаблон с содСрТаниСм, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ шаблонами. ΠœΡ‹ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠ΅ΠΌ свой шаблон индСкса, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ унаслСдовал ΠΎΡ‚ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ шаблона. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ создадим Π½ΠΎΠ²ΡƒΡŽ страницу, которая Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ страницСй «О ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈΒ», Π³Π΄Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ смогут Π½Π°ΠΉΡ‚ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ вашСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.
Для этого, создадим base.html ΠΈ ΠΏΡ€ΠΎΠΏΠΈΡˆΠ΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄:


    {% block title %} {% endblock %} - FlaskApp
    
        nav a {
            color: #d64161;
            font-size: 3em;
            margin-left: 50px;
            text-decoration: none;
        }
    


    

{% block content %} {% endblock %}

Π‘ΠΎΠ»ΡŒΡˆΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° Π² этом Ρ„Π°ΠΉΠ»Π΅ прСдставляСт собой стандартный HTML ΠΊΠΎΠ΄, Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ стили для ссылок Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ, панСль Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ с двумя ссылками, ΠΎΠ΄Π½Π° для страницы индСкса, другая для Π΅Ρ‰Π΅ Π½Π΅ созданной страницы «О ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅Β», Π° Ρ‚Π°ΠΊΠΆΠ΅ div для содСрТаниС страницы. (Бсылки ΠΏΠΎΠΊΠ° Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚; Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ шагС Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ссылки ΠΌΠ΅ΠΆΠ΄Ρƒ страницами). Однако, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ части относятся ΠΊ ΡˆΠ°Π±Π»ΠΎΠ½ΠΈΠ·Π°Ρ‚ΠΎΡ€Ρƒ Jinja:

β€’{% block title %} {% endblock %}: Π±Π»ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ слуТит Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π΅ΠΌ для Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°. ПозТС Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΡˆΠ°Π±Π»ΠΎΠ½Π°Ρ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π΄Π°Ρ‚ΡŒ собствСнный Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ страницы Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, Π½Π΅ пСрСписывая ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· вСсь Ρ€Π°Π·Π΄Π΅Π».
β€’{% block content %} {% endblock %}: Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π±Π»ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΌΠ΅Π½Π΅Π½ содСрТимым Π² зависимости ΠΎΡ‚ Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅Π³ΠΎ шаблона (шаблона, наслСдуСмого ΠΎΡ‚ base.html), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ Π΅Π³ΠΎ.
Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Ρƒ нас Π΅ΡΡ‚ΡŒ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ шаблон, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ наслСдованиС. ΠžΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ Ρ„Π°ΠΉΠ» index.html ΠΈ Π·Π°Ρ‚Π΅ΠΌ Π·Π°ΠΌΠ΅Π½ΠΈΠΌ Π΅Π³ΠΎ содСрТимоС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ:


{% extends 'base.html' %}

{% block content %}
    
    
     

Welcome to FlaskApp!

{{ utc_dt }}

{% endblock %}

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ‚Π΅Π³ {% extends %} для наслСдования ΠΎΡ‚ шаблона base. html. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌ Π΅Π³ΠΎ, замСняя Π±Π»ΠΎΠΊ содСрТимого Π² Π±Π°Π·ΠΎΠ²ΠΎΠΌ шаблонС Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ находится Π²Π½ΡƒΡ‚Ρ€ΠΈ Π±Π»ΠΎΠΊΠ° содСрТимого Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ Π±Π»ΠΎΠΊΠ΅ ΠΊΠΎΠ΄Π°.

Π­Ρ‚ΠΎΡ‚ Π±Π»ΠΎΠΊ содСрТимого содСрТит Ρ‚Π΅Π³ h2 с тСкстовым индСксом Π²Π½ΡƒΡ‚Ρ€ΠΈ основной надписи, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, замСняСт ΠΈΡΡ…ΠΎΠ΄Π½ΡƒΡŽ ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ надпись Π² шаблонС base.html тСкстовым индСксом, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ становится индСксом β€” FlaskApp. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ повторСния ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ тСкста Π΄Π²Π°ΠΆΠ΄Ρ‹, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΊ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ страницы, Ρ‚Π°ΠΊ ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ появляСтся ΠΏΠΎΠ΄ панСлью Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ, унаслСдованной ΠΎΡ‚ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ шаблона. Π—Π°Ρ‚Π΅ΠΌ Ρƒ нас Π΅ΡΡ‚ΡŒ Π΅Ρ‰Π΅ нСсколько Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ²: ΠΎΠ΄ΠΈΠ½ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ h2 с тСкстом Hello World!, Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ h3 ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ h4, содСрТащий Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ utc_dt.

НаслСдованиС шаблонов Π΄Π°Π΅Ρ‚ Π½Π°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ HTML ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΅ΡΡ‚ΡŒ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΡˆΠ°Π±Π»ΠΎΠ½Π°Ρ… (Π² Π΄Π°Π½Π½ΠΎΠΌ случаС base.html), Π±Π΅Π· нСобходимости ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒ Π΅Π³ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° это Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ. Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΠΌ ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΠΌ страницу индСкса Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅. Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ создаСм страницу Β«AboutΒ». ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Ρ„Π°ΠΉΠ» app2.py, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ ΠΈ добавляСм ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:


# ...
@app.route('/about/')
def about():
return render_template('about.html')

Π—Π΄Π΅ΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€ app.route() для создания Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ просмотра с ΠΈΠΌΠ΅Π½Π΅ΠΌ about(). Π’ Π½Π΅ΠΌ ΠΌΡ‹ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ render_template() с ΠΈΠΌΠ΅Π½Π΅ΠΌ Ρ„Π°ΠΉΠ»Π° шаблона about.html Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°.

ΠžΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ Ρ„Π°ΠΉΠ» шаблона с ΠΈΠΌΠ΅Π½Π΅ΠΌ about.html для рСдактирования ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄:


{% extends 'base.html' %}
{% block content %}

 

FlaskApp is a Flask web application written in Python.

{% endblock %}

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ наслСдуСм Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ шаблон с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π΅Π³Π° extends, замСняСм Π±Π»ΠΎΠΊ содСрТимого Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ шаблона Ρ‚Π΅Π³ΠΎΠΌ h2, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ слуТит Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ страницы, ΠΈ добавляСм Ρ‚Π΅Π³ h4 с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.

Когда сСрвСр Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π·Π°ΠΏΡƒΡ‰Π΅Π½, ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΏΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ URL адрСсу Π² своСм Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅:


http://127.0.0.1:5000/about


ΠœΡ‹ создали Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ шаблон ΠΈ использовали Π΅Π³ΠΎ Π½Π° своСй индСксной страницС ΠΈ Π½Π° страницС свСдСний, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ повторСния ΠΊΠΎΠ΄Π°.

3. БвязываниС страниц
На этом этапС ΠΌΡ‹ свяТСм страницы Π² ΡˆΠ°Π±Π»ΠΎΠ½Π°Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ url_for(). ΠœΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π΄Π²Π΅ ссылки Π½Π° панСль Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ Π² свой Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ шаблон, ΠΎΠ΄Π½Ρƒ для Π³Π»Π°Π²Π½ΠΎΠΉ страницы ΠΈ Π΄Ρ€ΡƒΠ³ΡƒΡŽ для страницы Β«AboutΒ».

Π‘Π½Π°Ρ‡Π°Π»Π° ΠΎΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ шаблон для рСдактирования ΠΈ внСситС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ измСнСния:


{% block title %} {% endblock %} - FlaskApp

nav a {
color: #d64161;
font-size: 3em;
margin-left: 50px;
text-decoration: none;
}




{% block content %} {% endblock %}

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ url_for(), которая Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ URL адрСс Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ просмотра, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ Π΅ΠΌΡƒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ. ΠŸΠ΅Ρ€Π²Π°Ρ ссылка ссылаСтся Π½Π° ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ просмотра hello() (которая являСтся страницСй индСкса). Вторая ссылка ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ просмотра about(). ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ имя Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ просмотра, Π° Π½Π΅ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ (/ ΠΈΠ»ΠΈ /about). ИспользованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ url_for() для создания URL адрСсов ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π»ΡƒΡ‡ΡˆΠ΅ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ URL адрСсами. Если ΠΌΡ‹ ТСстко Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌ URL адрСса, наши ссылки ΡΠ»ΠΎΠΌΠ°ΡŽΡ‚ΡΡ, Ссли ΠΌΡ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Ρ‹. Π‘ url_for() ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Ρ‹ ΠΈ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ссылки Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Ѐункция url_for() Ρ‚Π°ΠΊΠΆΠ΅ заботится ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π²Π΅Ρ‰Π°Ρ…, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ экранированиС ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… символов.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ Π½Π° Π³Π»Π°Π²Π½ΡƒΡŽ страницу ΠΈ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ссылки Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ. ΠœΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚.

4. ИспользованиС условных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ Ρ†ΠΈΠΊΠ»ΠΎΠ²
На этом этапС ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ if Π² своих ΡˆΠ°Π±Π»ΠΎΠ½Π°Ρ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Π² зависимости ΠΎΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… условий. ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ»Ρ‹ for для просмотра списков Python ΠΈ отобраТСния ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта Π² спискС. ΠœΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π½ΠΎΠ²ΡƒΡŽ страницу, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π² Π²ΠΈΠ΄Π΅ списка. ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ с Ρ‡Π΅Ρ‚Π½Ρ‹ΠΌ порядковым Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ синий Ρ„ΠΎΠ½, Π° ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ с Π½Π΅Ρ‡Π΅Ρ‚Π½Ρ‹ΠΌ порядковым Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π½Π° сСром Ρ„ΠΎΠ½Π΅.

Π‘Π½Π°Ρ‡Π°Π»Π° ΠΌΡ‹ создадим ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ для страницы ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π². ΠžΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ Ρ„Π°ΠΉΠ» app2.py для рСдактирования ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ Π² ΠΊΠΎΠ½Π΅Ρ† Ρ„Π°ΠΉΠ»Π°:


# ...
@app.route('/comments/')
def comments():
comments = ['This is the first comment.',
'This is the second comment.',
'This is the third comment.',
'This is the fourth comment.'
]
return render_template('comments.html', comments=comments)

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π΅ Ρƒ нас Π΅ΡΡ‚ΡŒ список Python, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ коммСнтариями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ элСмСнта. ΠœΡ‹ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚Π΅ Ρ„Π°ΠΉΠ» шаблона с ΠΈΠΌΠ΅Π½Π΅ΠΌ comments.html Π² послСднСй строкС, ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ с ΠΈΠΌΠ΅Π½Π΅ΠΌ comments, содСрТащСй список, Π² Ρ„Π°ΠΉΠ» шаблона.

Π—Π°Ρ‚Π΅ΠΌ создадим ΠΈ ΠΎΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» comments. html Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ шаблонов для рСдактирования ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄:


{% extends 'base.html' %}
{% block content %}


{% for comment in comments %}

{{ comment }}

{% endfor %}

{% endblock %}

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌ шаблон base.html ΠΈ замСняСм содСрТимоС Π±Π»ΠΎΠΊΠ° содСрТимого. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ h2, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ слуТит Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ страницы.
ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ†ΠΈΠΊΠ» Jinja for Π² строкС {% for comment in comments %}, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Π² спискС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сохраняСтся Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ коммСнтария). ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ отобраТаСтся Π² Ρ‚Π΅Π³Π΅ (p {{comment}} /p) Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π² Jinja. ΠœΡ‹ сигнализируСм ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ Ρ†ΠΈΠΊΠ»Π° for с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова {% endfor %}. Π­Ρ‚ΠΎ отличаСтся ΠΎΡ‚ способа построСния Ρ†ΠΈΠΊΠ»ΠΎΠ² for Π² Python, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² ΡˆΠ°Π±Π»ΠΎΠ½Π°Ρ… Jinja Π½Π΅Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ отступа.

Когда сСрвСр Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π·Π°ΠΏΡƒΡ‰Π΅Π½, ΠΎΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ Π½Π° страницу ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π²:


http://127.0.0.1:5000/comments

ΠœΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΎΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ Ρ„Π°ΠΉΠ» шаблона comments.html ΠΈ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π΅Π³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ выглядСл ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:


{% extends 'base.html' %}

{% block content %}
    
    

{% for comment in comments %} {% if loop.index %2 == 0 %} {% set bg_color = '#e6f9ff' %} {% else %} {% set bg_color = '#eee' %} {% endif %}

#{{ loop.index }}

{{ comment }}

{% endfor %}

{% endblock %}

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этого Π½ΠΎΠ²ΠΎΠ³ΠΎ рСдактирования ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ if Π² строку {% if loop.index %2 == 0 %}. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ Ρ†ΠΈΠΊΠ»Π° β€” это ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ пСрСмСнная Jinja, которая Π΄Π°Π΅Ρ‚ Π½Π°ΠΌ доступ ΠΊ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ Ρ†ΠΈΠΊΠ»Π΅. Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ loop.index, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ индСкс Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ элСмСнта, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ начинаСтся с 1, Π° Π½Π΅ с 0, ΠΊΠ°ΠΊ Π² списках Python. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ if здСсь провСряСт, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π»ΠΈ индСкс Π΄Π°ΠΆΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ %. Он провСряСт остаток ΠΎΡ‚ дСлСния Π½ΠΎΠΌΠ΅Ρ€Π° индСкса Π½Π° 2; Ссли остаток Ρ€Π°Π²Π΅Π½ 0, это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π½ΠΎΠΌΠ΅Ρ€ индСкса Ρ‡Π΅Ρ‚Π½Ρ‹ΠΉ, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Π½ΠΎΠΌΠ΅Ρ€ индСкса Π½Π΅Ρ‡Π΅Ρ‚Π½Ρ‹ΠΉ. Π’Π΅Π³ {% set %} ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для объявлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ с ΠΈΠΌΠ΅Π½Π΅ΠΌ bg_color. Если порядковый Π½ΠΎΠΌΠ΅Ρ€ Ρ‡Π΅Ρ‚Π½Ρ‹ΠΉ, ΠΌΡ‹ устанавливаСм Π΅Π³ΠΎ Π½Π° Π³ΠΎΠ»ΡƒΠ±ΠΎΠ²Π°Ρ‚Ρ‹ΠΉ Ρ†Π²Π΅Ρ‚, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС, Ссли Π½ΠΎΠΌΠ΅Ρ€ индСкса Π½Π΅Ρ‡Π΅Ρ‚Π½Ρ‹ΠΉ, ΠΌΡ‹ устанавливаСм ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ bg_color Π½Π° сСрый. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ bg_color, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ†Π²Π΅Ρ‚ Ρ„ΠΎΠ½Π° для Ρ‚Π΅Π³Π° div, содСрТащСго ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ. Над тСкстом коммСнтария ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ loop.index для отобраТСния Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Π½ΠΎΠΌΠ΅Ρ€Π° индСкса Π² Ρ‚Π΅Π³Π΅ p.

Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΠΌ ΠΈ посмотрим Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ всС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, ΠΊΡ€ΠΎΠΌΠ΅ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ if с условиСм loop.index != 2, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ.

ΠžΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ шаблон ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² ΠΈ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠ΅ΠΌ Π΅Π³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ выглядСл ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:


{% extends 'base.html' %}
{% block content %}


{% for comment in comments %} {% if loop.index != 2 %}

#{{ loop.index }}

{{ comment }}

{% endif %} {% endfor %}

{% endblock %}

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ {% if loop.index != 2 %}, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ индСкса 2, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ всС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, ΠΊΡ€ΠΎΠΌΠ΅ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ. ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ТСстко Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для Ρ†Π²Π΅Ρ‚Π° Ρ„ΠΎΠ½Π° вмСсто ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠ° loop.cycle(), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ, Π° ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅ Π½Π΅ измСняСтся. ΠœΡ‹ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ if, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ {% endif %}. Обновим страницу ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π², ΠΈ ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Π½Π΅ отобраТаСтся.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ссылку, которая ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π° страницу ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ. ΠžΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ шаблон для рСдактирования ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ содСрТимоС Ρ‚Π΅Π³Π° nav, Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΠΊ Π½Π΅ΠΌΡƒ Π½ΠΎΠ²ΡƒΡŽ ссылку a:


    {% block title %} {% endblock %} - FlaskApp
    
        nav a {
            color: #d64161;
            font-size: 3em;
            margin-left: 50px;
            text-decoration: none;
        }
    


    

{% block content %} {% endblock %}

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊ url_for() для ссылки Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ просмотра comments(). Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ Π±ΡƒΠ΄Π΅Ρ‚ новая ссылка, которая Π²Π΅Π΄Π΅Ρ‚ Π½Π° страницу ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π².

5. ИспользованиС Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²
На этом этапС ΠΌΡ‹ ΡƒΠ·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ Jinja Π² своих ΡˆΠ°Π±Π»ΠΎΠ½Π°Ρ….

Π‘Π½Π°Ρ‡Π°Π»Π° ΠΌΡ‹ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅ΠΌ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π½Π° страницС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² Π² Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ рСгистр. ΠžΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ для рСдактирования шаблон comments.html ΠΈ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠ΅ΠΌ Π΅Π³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ выглядСл ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:


{% extends 'base. html' %}
{% block content %}


{% for comment in comments %} {% if loop.index != 2 %}

#{{ loop.index }}

{{ comment | upper }}

{% endif %} {% endfor %}

{% endblock %}

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌ шаблон base.html ΠΈ замСняСм содСрТимоС Π±Π»ΠΎΠΊΠ° содСрТимого. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ h2, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ слуТит Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ страницы.
ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ†ΠΈΠΊΠ» Jinja for Π² строкС {% for comment in comments %}, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Π² спискС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сохраняСтся Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ коммСнтария). ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ отобраТаСтся Π² Ρ‚Π΅Π³Π΅ ((p style = font-size: 24px {{comment}} /p)) Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π² Jinja. ΠœΡ‹ сигнализируСм ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ Ρ†ΠΈΠΊΠ»Π° for с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова {% endfor %}. Π­Ρ‚ΠΎ отличаСтся ΠΎΡ‚ способа построСния Ρ†ΠΈΠΊΠ»ΠΎΠ² for Π² Python, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² ΡˆΠ°Π±Π»ΠΎΠ½Π°Ρ… Jinja Π½Π΅Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ отступа.
Когда сСрвСр Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π·Π°ΠΏΡƒΡ‰Π΅Π½, ΠΎΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ Π½Π° страницу ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π²:


http://127. 0.0.1:5000/comments

Π€ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π² ΠΊΡ€ΡƒΠ³Π»Ρ‹Ρ… скобках. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ это, Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠΌ объСдинСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ всС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π² спискС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π².

ΠžΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ шаблон ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² ΠΈ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠ΅ΠΌ Π΅Π³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ выглядСл ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:


{% extends 'base.html' %}
{% block content %}


{% for comment in comments %} {% if loop.index != 2 %}

#{{ loop.index }}

{{ comment | upper }}

{% endif %} {% endfor %}


{{ comments | join(" | ") }}

{% endblock %}

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Ρ‚Π΅Π³ΠΈ hr ΠΈ div, Π³Π΄Π΅ ΠΌΡ‹ объСдиняСм всС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π² спискС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π° join(). Обновим страницу ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π², ΠΈ ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ страницу, ΠΏΠΎΠ΄ΠΎΠ±Π½ΡƒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ:

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, список comments отобраТаСтся с коммСнтариями, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ‡Π΅Ρ€Ρ‚ΠΎΠΉ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π»ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρƒ join().

Π”Ρ€ΡƒΠ³ΠΎΠΉ Π²Π°ΠΆΠ½Ρ‹ΠΉ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ β€” это бСзопасный Ρ„ΠΈΠ»ΡŒΡ‚Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Π΄ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΉ HTML ΠΊΠΎΠ΄ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅. Для Π΅Π³ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ шаблон ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² ΠΈ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠ΅ΠΌ Π΅Π³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ выглядСл ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:


{% extends 'base.html' %}

{% block content %}
    
    

{% for comment in comments %} {% if loop.index != 2 %}

#{{ loop.index }}

{{ comment | upper }}

{% endif %} {% endfor %}


{{ "

" }}

{{ comments | join("


") }}

{% endblock %}

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ h2 COMMENTS/h2 ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ соСдинСния Π½Π° Ρ‚Π΅Π³ hr. Обновим страницу ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π², ΠΈ ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ страницу, ΠΏΠΎΠ΄ΠΎΠ±Π½ΡƒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ:

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ HTML Ρ‚Π΅Π³ΠΈ Π²Ρ‹ΡˆΠ΅, ΠΎΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ Ρ„Π°ΠΉΠ» шаблона ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ бСзопасный Ρ„ΠΈΠ»ΡŒΡ‚Ρ€:


{% extends 'base. html' %}
{% block content %}


{% for comment in comments %} {% if loop.index != 2 %}

#{{ loop.index }}

{{ comment | upper }}

{% endif %} {% endfor %}


{{ "

" | safe }}

{{ comments | join("


") | safe }}

{% endblock %}

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ, ΠΊΠ°ΠΊ Π² строкС p{{ comments | join(«hr») | safe }}hr. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ примСняСтся ΠΊ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρƒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ. Обновим страницу ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π², ΠΈ ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Π΅Π³ΠΈ HTML Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

6 β€” интСграция Bootstrap
БСйчас ΠΌΡ‹ ΡƒΠ·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°Π±ΠΎΡ€ инструмСнтов Bootstrap для стилизации нашСго прилоТСния. Π”ΠΎΠ±Π°Π²ΠΈΠΌ панСль Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ Bootstrap Π² Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ шаблон, которая Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π½Π° всСх страницах, унаслСдованных ΠΎΡ‚ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ шаблона.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Bootstrap, Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ шаблон, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π²ΠΎ всСх Π΄Ρ€ΡƒΠ³ΠΈΡ… ΡˆΠ°Π±Π»ΠΎΠ½Π°Ρ…. ΠžΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ свой шаблон base.html для рСдактирования ΠΈ запишСм:


 
    
    
    
    

    {% block title %} {% endblock %} - FlaskApp

{% block content %} {% endblock %}

Π‘ΠΎΠ»ΡŒΡˆΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄Π° β€” это шаблон Bootstrap, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ для Π΅Π³ΠΎ использования. Π£ нас Π΅ΡΡ‚ΡŒ нСсколько ΠΌΠ΅Ρ‚Π°Ρ‚Π΅Π³ΠΎΠ², ссылка Π½Π° Ρ„Π°ΠΉΠ» CSS Bootstrap Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ head, Π° Π²Π½ΠΈΠ·Ρƒ Ρƒ нас Π΅ΡΡ‚ΡŒ ссылка Π½Π° Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ JavaScript. Π’Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ части ΠΊΠΎΠ΄Π° содСрТат ΠΊΠΎΠ΄ Jinja, ΠΎΠ±ΡŠΡΡΠ½Π΅Π½Π½Ρ‹ΠΉ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… ΡˆΠ°Π³Π°Ρ….

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Ρ‚Π΅Π³ΠΈ ΠΈ классы CSS, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Bootstrap, ΠΊΠ°ΠΊ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт.

Π’ Ρ‚Π΅Π³Π΅ nav Π²Ρ‹ΡˆΠ΅ Ρƒ нас Π΅ΡΡ‚ΡŒ Ρ‚Π΅Π³ a с классом navbar-brand, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ опрСдСляСт ссылку Π±Ρ€Π΅Π½Π΄Π° Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ. Π’Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Π΅Π³Π° ul class = «. navbar-nav» Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ элСмСнты ΠΏΠ°Π½Π΅Π»ΠΈ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Π΅Π³Π° a Π² Ρ‚Π΅Π³Π΅ li.

Когда сСрвСр Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π·Π°ΠΏΡƒΡ‰Π΅Π½, ΠΎΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ страницу индСкса Π² своСм Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅:


http://127.0.0.1:5000/

ΠœΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ страницу, ΠΏΠΎΡ…ΠΎΠΆΡƒΡŽ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ HTML ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ Π² своСм Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Flask. ΠœΡ‹ использовали ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… с сСрвСра Π² ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ повторСния HTML ΠΊΠΎΠ΄Π° ΠΌΡ‹ использовали наслСдованиС шаблонов, встроили Ρ‚Π°ΠΊΠΈΠ΅ элСмСнты, ΠΊΠ°ΠΊ условныС выраТСния if ΠΈ Ρ†ΠΈΠΊΠ»Ρ‹ for, Π° Ρ‚Π°ΠΊΠΆΠ΅ ссылки ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ страницами. ΠœΡ‹ ΡƒΠ·Π½Π°Π»ΠΈ ΠΎ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ… для измСнСния тСкста ΠΈ отобраТСния Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ³ΠΎ HTML, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ Bootstrap Π² своС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

Экспорт Ρ„Π°ΠΉΠ»ΠΎΠ² HTML-ΠΊΠΎΠ΄Π° | Mailchimp

Hinweis

Die Vorlagenoptionen in diesem Artikel sind nur fΓΌr den klassischen E-Mail-Builder verfΓΌgbar. Weitere Informationen zu den Vorlagen im neuen E-Mail-Builder findest du unter Eine E-Mail mit dem neuen Builder gestalten.

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Π½Π° страницС Β«Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½Π½Ρ‹Π΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹Β» (Gespeicherte Vorlagen) Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ HTML-Π΄Π°Π½Π½Ρ‹Π΅, ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΈΠ· HTML-Π΄Π°Π½Π½Ρ‹Ρ…, экспортированныС Π² ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€. Verwende diese Datei, um den HTML-Code der Vorlage zu bearbeiten, oder lade die Vorlage in einen anderen Mailchimp-Account hoch.

In diesem Artikel erfΓ€hrst du, wie du eine Vorlage aus deinem Account exportierst.

So exportierst du eine gespeicherte Vorlage:

  1. Klicke auf Campaigns (Kampagnen) .
  2. НаТмитС Π½Π° Π¨Π°Π±Π»ΠΎΠ½Ρ‹ элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ (E-Mail-Vorlagen) .

  3. Finde die Vorlage, die du exportieren mΓΆchtest, indem du die Vorlagenliste durchsuchst oder diesuche verwendest.

  4. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π² Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΌΡΡ мСню, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ мСню SchaltflΓ€che Edit (Bearbeiten) und wΓ€hle Export as HTML (Als HTML exportieren) .
  5. ИспользованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Drag-and-Drop-Vorlage для экспорта, ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, dass Drag-and-Drop-Vorlagen beim Import zurΓΌck nach Mailchimp keine Drag-and-Drop-Funktion umfassen. НаТмитС Π½Π° шаблон экспорта (Vorlage exportieren) , um fortzufahren.

    Wenn du die Drag-and-Drop-Funktion fΓΌr eine Vorlage beibehalten mΓΆchtest, sieh dir unser Feature zum Teilen von Vorlagen an.

ЭкспортируйтС Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ HTML-Datei Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, установлСнном ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. Danach kannst du die Vorlage außerhalb von Mailchimp Π² Π½Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ HTML-Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€. Die Exportierte Vorlage kann zur Verwendung in Kampagnen auch in einen anderen Mailchimp-Account importiert werden.

Π‘Π»ΡƒΠΆΠ±Π° тСхничСской ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ


War dieser Artikel hilfreich?

Π―

НСйн

Π‘ΡƒΠΏΠ΅Ρ€! Kannst du uns ein bisschen mehr zu deinen heutigen Erfahrungen sagen?

Das Gesuchte Π²ΠΎΠΉΠ½Ρ‹ leicht Ρ†Ρƒ finden.

Ich konnte problemlos einen Hilfeartikel ΓΌberfliegen, um die benΓΆtigten Informationen zu finden.

Die Hilfeartikel sind einfach zu lesen.

Die Hilfeartikel haben mir geholfen, mein Problem zu lΓΆsen.

Mailchimp ist einfach zu verwenden.

Я люблю Mailchimp!

Бонстиги.

Bitte entschuldige, dass wir dir nicht besser helfen konnten. Kannst du uns etwas zu deinen heutigen Erfahrungen sagen?

Die Hilfeartikel ergeben keinen Sinn.

Ich wΓΌnschte, es gΓ€be ein Video, Π² dem die Vorgehensweise gezeigt wird.

Π‘Ρ‹Π»ΠΎ Π»ΠΈ это Π² Mailchimp machen mΓΆchte, funktioniert nicht so, wie es sollte.

Das Gesuchte Π²ΠΎΠΉΠ½Ρ‹ schwer Ρ†Ρƒ finden.

Ich habe gar nicht gefunden, wonach ich gesucht habe.

Ich benΓΆtige den Support, um mein Problem (z. B. ein Accountoder Abrechnungsproblem) zu lΓΆsen.

Бонстиги.

Wie kΓΆnnen wir unsere Π’Π΅Π±-сайт weiter verbessern?

БСсплатныС простыС HTML-ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ для узнаваСмости вашСго Π±Ρ€Π΅Π½Π΄Π°

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ½Π»Π°ΠΉΠ½-Ρ€Ρ‹Π½ΠΊΠ° β€” своСго Ρ€ΠΎΠ΄Π° слоТная Π·Π°Π΄Π°Ρ‡Π°. Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-сайт, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠΏΡ‹Ρ‚ программирования ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π½Π°Π½ΡΡ‚ΡŒ профСссионала, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это Π·Π° вас. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ хостинг, ΠΊΡƒΠΏΠΈΡ‚ΡŒ Π΄ΠΎΠΌΠ΅Π½, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ мноТСство Π΄Ρ€ΡƒΠ³ΠΈΡ… дСйствий, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΡ‚Π°Ρ‚ΡŒ профСссионалом Π² Ρ‚ΠΎΠΌ, Π½Π°Π΄ Ρ‡Π΅ΠΌ Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅.

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ для людСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ Ρ‚Π°Π»Π°Π½Ρ‚ΠΎΠ² Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ HTML/CSS, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹ Π² финансах, доступны бСсплатныС простыС HTML-ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ ΠΈ этот инструмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΡΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΉΡ‚ΠΈ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ с вашим ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-ΡƒΡ‡Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ быстрСС.

Π’ΠΎΡ‚ список бСсплатных простых HTML-шаблонов.

Π­Ρ‚ΠΎΡ‚ шаблон прСдставляСт собой ΠΊΡ€ΡƒΡ‚ΡƒΡŽ ΠΈ ΠΆΠ΅Π»Π°Π½Π½ΡƒΡŽ ΠΌΠ½ΠΎΠ³ΠΎΡ†Π΅Π»Π΅Π²ΡƒΡŽ Ρ‚Π΅ΠΌΡƒ, которая содСрТит мноТСство Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² Π²Π΅Π±-страницы, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΠΊΠ°Ρ€Ρ‚Ρ‹, Π³Π°Π»Π΅Ρ€Π΅ΠΈ, ΠΌΠ°Π³Π°Π·ΠΈΠ½Ρ‹ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ это для своСго малСнького ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, Π½Π°ΠΌΠ΅Ρ€Π΅Π½ ΡƒΠ΄ΠΈΠ²ΠΈΡ‚ΡŒ Π²Π°ΡˆΠΈΡ… гостСй.

Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΈ Π΄ΡƒΡˆΠ΅Ρ€Π°Π·Π΄ΠΈΡ€Π°ΡŽΡ‰Π°Ρ Ρ‚Π΅ΠΌΠ° профиля. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС это шаблон для создания профиля ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„Π° ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ сайта. Π’ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ этим, Π΄Π°ΠΆΠ΅ Ссли Π²Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ, Ρ…ΡƒΠ΄ΠΎΠΆΠ½ΠΈΠΊ, ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ ΠΈ Ρ‚. Π΄., ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ адаптируСтся ΠΈ ΡƒΠ΄ΠΎΠ±Π΅Π½ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Π­Ρ‚ΠΎΡ‚ Ρ‚ΠΈΠΏ Ρ‚Π΅ΠΌΡ‹ сайта являСтся фантастичСским Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ для создания Π²Π΅Π±-страниц парикмахСрской ΠΈΠ»ΠΈ салона красоты. Π’Π°ΠΌ потрСбуСтся Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 5Β ΠΌΠΈΠ½ΡƒΡ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ этот Π²Π΅Π±-шаблон ΠΈ конструктор Π²Π΅Π±-сайтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ прСдлагаСтся. На самом Π΄Π΅Π»Π΅, ΠΎΠ½ идСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для любого бизнСса: обновляйтС изобраТСния ΠΈ тСксты, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΠΉΡ‚Π΅ часы Ρ€Π°Π±ΠΎΡ‚Ρ‹, ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈ расцСнки β€” с этим Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ свою ΠΎΡΠΎΠ±Π΅Π½Π½ΡƒΡŽ страницу Π½Π° сайтС.

Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΈ Π·Π°ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ довСрия шаблон курса вальса ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Π΅Ρ‚ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ зритСля. ВсС это являСтся Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Ρ†Π²Π΅Ρ‚ΠΎΠ²ΠΎΠΉ схСмы ΠΈ характСристик AMP, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ быстрая Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π½Π° Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°Ρ…. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ шаблон HTML5 Π² конструктор сайтов, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π»Π΅Π³ΠΊΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π±Π΅Π· нСобходимости кодирования HTML.

Если Π²Ρ‹ Π½Π° самом Π΄Π΅Π»Π΅ Π²Π»Π°Π΄Π΅Π»Π΅Ρ† рСсторана ΠΈΠ»ΠΈ рСсторана, этот шаблон HTML5 ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎ станСт для вас ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠΌ. Π‘ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»Π΅Π³ΠΊΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π΅Π±-сайт отСля ΠΈ ΠΊΡƒΡ€ΠΎΡ€Ρ‚Π° вмСстС со всСм Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌ: Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠΈ планирования, гостиными, Ρ‚Π°Ρ€ΠΈΡ„Π°ΠΌΠΈ, ΠΎΡ‚Π·Ρ‹Π²Π°ΠΌΠΈ, Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½Ρ‹ΠΌΠΈ Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠΈ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠΌ.

Он ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ ΠΊ бСсплатным простым HTML-шаблонам, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‚ ТСлания ΠΏΡ€Π΅Π΄ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚Π΅Π»Π΅ΠΉ Π² сфСрС гостиничного бизнСса. Π›ΡŽΠ±ΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π»Π΅Π³ΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ благодаря конструктору Π²Π΅Π±-страниц: ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°ΠΉΡ‚Π΅ Π±Π»ΠΎΠΊΠΈ сайта, измСняйтС ΠΈΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΈΡ… внСшний Π²ΠΈΠ΄ прямо Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. Благодаря этому Π²Ρ‹ Π»Π΅Π³ΠΊΠΎ достигнСтС фантастичСского ΠΈ красивого Π²ΠΈΠ΄Π° вашСй Π²Π΅Π±-страницы.

Π’Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ нСбольшой ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-ΠΌΠ°Π³Π°Π·ΠΈΠ½? Π’ΠΎΠ³Π΄Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ эту Ρ‚Π΅ΠΌΡƒ HTML5 Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ. НСт нСобходимости ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ создании Π²Π΅Π±-сайта с Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ: просто Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ изобраТСния ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π²Π΅Π±-ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚, настройтС Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΎΠΏΠ»Π°Ρ‚Ρ‹, ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ваш Π²Π΅Π±-сайт ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ.

Π­Ρ‚ΠΎΡ‚ шаблон ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ для Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π΅Π² бизнСса Π² сфСрС ΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒΡΡ‚Π²Π° ΠΈΠ»ΠΈ развития. ΠΠ°ΡΠ»Π°ΠΆΠ΄Π°ΠΉΡ‚Π΅ΡΡŒ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΊΠ½ΠΎΠΏΠΎΠΊ, ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΌΠΈ Ρ„ΠΎΠ½ΠΎΠ²Ρ‹ΠΌΠΈ изобраТСниями, встроСнными ΠΎΠ½Π»Π°ΠΉΠ½-Π²ΠΈΠ΄Π΅ΠΎ, ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π½Ρ‹ΠΌΠΈ Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠΈ ΠΈ Π΄Π°ΠΆΠ΅ Π·Π½Π°Ρ‡ΠΊΠ°ΠΌΠΈ ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… сСтСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹, бСзусловно, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π½Π° своСм сайтС ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с этим шаблоном.

Π­Ρ‚ΠΎ эффСктивный ΠΈ СдинствСнный Π² своСм Ρ€ΠΎΠ΄Π΅ шаблон. Π­Ρ‚ΠΎΡ‚ шаблон ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-сущСствованиС для вашСго бизнСса максимально ΠΊΠΎΠΌΡ„ΠΎΡ€Ρ‚Π½ΠΎ. Π­Ρ‚ΠΎΡ‚ простой ΠΈ ΠΌΠΎΠ΄Π½Ρ‹ΠΉ шаблон идСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для бизнСса ΠΈ офисов.

Π­Ρ‚ΠΎΡ‚ шаблон раскрываСт Π²Π°ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠ°ΠΊ Π·Π°Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Ρ‚ΡŒ сСбя: создайтС Π²Π΅Π±-страницу Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠ²Π»Π΅Ρ‡ΡŒ Π³ΠΎΡ€Π°Π·Π΄ΠΎ большС интСрСса со стороны сотрудников ΠΈΠ»ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ². Π¨Π°Π±Π»ΠΎΠ½ ΠΎΡ‡Π°Ρ€ΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ анимациями, ΠΎΡ‚ΠΏΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ изобраТСниями, Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΉ Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠΉ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠΌ.

Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ эту Ρ‚Π΅ΠΌΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ‚ΠΎΡ€Π³ΠΎΠ²ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ для ΠΏΡ€ΠΎΠ΄Π°ΠΆΠΈ всСго, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΏΠΎΠΆΠ΅Π»Π°Π΅Ρ‚Π΅. ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚Π΅ свои ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹, ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ†Π΅Π½Ρ‹ ΠΏΡ€ΠΎΠ΄Π°ΠΆΠΈ ΠΈ Π΄Π΅Ρ‚Π°Π»ΠΈ, Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, ΠΈ всС это прСдусмотрСно для вас, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ. ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌ прСимущСством для вас являСтся ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‡Π½ΠΎΡΡ‚ΡŒ ΠΈ простота Π² ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ.

Когда Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ ΠΎ ΠΏΡ€ΠΎΠ΄Π°ΠΆΠ΅ ΠΎΠ΄Π΅ΠΆΠ΄Ρ‹ ΠΈΠ»ΠΈ ΠΎΠ±ΡƒΠ²ΠΈ, это ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π»ΡƒΡ‡ΡˆΠΈΡ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² для Π½Π°Ρ‡Π°Π»Π° ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-бизнСса. Π­Ρ‚ΠΎΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ шаблон являСтся ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠ΅ΠΉ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΠΏΡ€ΠΎΠ΄Π°Π²Π°Ρ‚ΡŒ ассортимСнт спортивных Π±ΠΎΡ‚ΠΈΠ½ΠΎΠΊ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎ. Π’Ρ‹, бСзусловно, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ свой сайт, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ этот шаблон HTML5 для Π»ΡŽΠ±Ρ‹Ρ… Ρ†Π΅Π»Π΅ΠΉ.

Π­Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ ΠΌΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ подходящСС для ΠΌΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… мСроприятий, ΠΆΠΈΠ²Ρ‹Ρ… Ρ€ΠΎΠΊ-фСстивалСй, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… мСроприятий. Π’ настоящСС врСмя Π΅ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠ°ΠΊ слайд-ΡˆΠΎΡƒ, анимация Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΉ, пСсни SoundCloud, ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠΈ сайта Π±Π»ΠΎΠ³Π° ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. Π›ΡŽΠ΄ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π»Π΅Π³ΠΊΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ этот шаблон сайта Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, просто ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ² ΠΈ настроив конструктор ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… сайтов.

Π­Ρ‚ΠΎΡ‚ шаблон являСтся Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ любой ΠΈΠ· самых слоТных ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ: ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ красивый ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-сайт ΠΎ физичСской активности. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π΄ΠΈΠ·Π°ΠΉΠ½ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ шаблона ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° сайта ΠΌΠΎΠΆΠ΅Ρ‚ практичСски ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π΅Π±-сайт спортивного ΠΊΠ»ΡƒΠ±Π° ΠΈΠ»ΠΈ сСминара ΠΏΠΎ ΡƒΡ…ΠΎΠ΄Ρƒ Π·Π° Π·Π΄ΠΎΡ€ΠΎΠ²ΡŒΠ΅ΠΌ, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ этому, Π·Π° считанныС ΠΌΠΈΠ½ΡƒΡ‚Ρ‹.

НСзависимо ΠΎΡ‚ вашСго бизнСса, этот ΠΌΠ½ΠΎΠ³ΠΎΡ†Π΅Π»Π΅Π²ΠΎΠΉ ΠΈ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятный шаблон являСтся Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ эффСктивным Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ для Π²Π΅Π±-сайтов любой Ρ„ΠΎΡ€ΠΌΡ‹. Π­Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ вашим поТСланиям, Π² основном ΠΏΡ€ΠΈ условии, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Ρ‚ΡŒ свои ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹ максимально эффСктивно. Π­Ρ‚ΠΎ позволяСт Π²Π°ΠΌ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ свою ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, ввСсти нСсколько ΡΠ²ΠΈΠ΄Π΅Ρ‚Π΅Π»ΡŒΡΡ‚Π², Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ видСозаписи ΠΈ Π³Π°Π»Π΅Ρ€Π΅ΠΈ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅.

По ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ бСсплатными простыми HTML-шаблонами этот ΠΈΠΌΠ΅Π΅Ρ‚ большС возмоТностСй для всСх, ΠΊΡ‚ΠΎ находится Π² Π΅Π³ΠΎ распоряТСнии. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π΅ΡΡ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΎΡ‚Π·Ρ‹Π²ΠΎΠ² со Π·Π²Π΅Π·Π΄Π°ΠΌΠΈ ΠΈ фотографиями профиля, ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠΈ Π±Π»ΠΎΠ³ΠΎΠ², Π±Π»ΠΎΠΊΠΈ ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΉ услуг ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅, с Ρ‡Π΅ΠΌ Π²Ρ‹ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚Π΅, ΠΈΠ·ΡƒΡ‡ΠΈΠ² Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ Π²Π΅Π±-страницу.

ΠœΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎΠ± этой Ρ‚Π΅ΠΌΠ΅ ΠΊΠ°ΠΊ ΠΎ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠΌ мягком ΠΌΠ°ΠΊΠ΅Ρ‚Π΅, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ практичСски любой ΠΎΠ½Π»Π°ΠΉΠ½-сайт, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ этой Ρ‚Π΅ΠΌΠΎΠΉ. ВСхнология Bootstrap Π΄Π΅Π»Π°Π΅Ρ‚ Π²Π΅Ρ‰ΠΈ Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΡ‡Π½Ρ‹ΠΌΠΈ ΠΈ простыми Π² использовании, создавая ΠΏΠΎΡ‚Ρ€ΡΡΠ°ΡŽΡ‰ΠΈΠ΅ стили, созданныС с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ вашСго вообраТСния.

Π£Π΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΈ рСактивная Ρ‚Π΅ΠΌΠ° Π²Π΅Π±-сайта, посвящСнная Π²Π΅Ρ€Ρ…ΠΎΠ²ΠΎΠΉ Π΅Π·Π΄Π΅, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ стоит ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ. И всС ΠΆΠ΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»Π΅Π³ΠΊΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ этот шаблон для любой Ρ†Π΅Π»ΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ Π³ΠΈΠ±ΠΊΠΈΠΉ ΠΈ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ изобраТСния, Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ свой собствСнный ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚, Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ†Π²Π΅Ρ‚Π°, ΠΈ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π²Ρ‹ быстро создадитС ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΈ ΠΏΡ€ΠΈΡΡ‚Π½ΡƒΡŽ ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ для своСй страницы.

Π­Ρ‚ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· самых ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ выглядящих ΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠΈΡ… бСсплатных простых HTML-шаблонов ΠΈ прСкрасная Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎ сСбС всСму ΠΌΠΈΡ€Ρƒ, прСдполагая, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½-Ρ€Π΅Π·ΡŽΠΌΠ΅ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒΠ½ΡƒΡŽ страницу Π½Π° Π²Π΅Π±-сайтС. . Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄ΠΈΠ·Π°ΠΉΠ½Π° WYSIWYG ΠΈ простоты шаблона Π½ΠΈΠΊΠΎΠΌΡƒ Π½Π΅ потрСбуСтся слишком ΠΌΠ½ΠΎΠ³ΠΎ усилий ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅.

ИмСя эту Ρ‚Π΅ΠΌΡƒ Π²Π΅Π±-сайта, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ красивый ΠΈ соврСмСнный сайт ΠΊΠ°Ρ„Π΅. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ встроСнный конструктор Π²Π΅Π±-сайтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π²Π°ΠΌ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свой сайт ΠΏΠΎ своСму ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Π½ΠΈΡŽ. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, этот шаблон Π²Π΅Π±-сайта ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π΅Π½, поэтому Π³ΠΎΡΡ‚ΡŒ вашСй Π²Π΅Π±-страницы, бСзусловно, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ максимально Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΉ ΠΎΠΏΡ‹Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠΌ.

Π£Π΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ, ΠΌΠΎΠ΄Π΅Ρ€Π½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ шаблон для ΠΈΠ³Ρ€ΠΎΠΊΠΎΠ². Π­Ρ‚ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚, Ссли Π²Ρ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ свой Π»ΠΈΡ‡Π½Ρ‹ΠΉ Π²Π΅Π±-сайт популярной ΠΌΡƒΠ·Ρ‹ΠΊΠΈ, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ Ρ„Π°Π½-страница, сайт Π΄ΠΆΠ°Π·-бэнда, Π²Π΅Π±-страница исполнитСля ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π²Π΅Π±-сайты. Π¨Π°Π±Π»ΠΎΠ½ ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Π΅Ρ‚ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΌΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ элСмСнтами, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, встроСнным ΠΏΠ»Π΅Π΅Ρ€ΠΎΠΌ SoundCloud.

Π­Ρ‚ΠΎΡ‚ шаблон сайта ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎ идСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Π΄ΠΈ-Π΄ΠΆΠ΅Π΅Π², Ρ‡Ρ‚ΠΎΠ±Ρ‹ эти люди ΠΌΠΎΠ³Π»ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‚, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ услуги ΠΎΠ½ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚, ΠΊΡ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ являСтся ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ, ΠΊΠ°ΠΊ выглядит ΠΈΡ… студия ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. Π˜Ρ‚Π°ΠΊ, Ρ€Π°Π±ΠΎΡ‚Π°ΠΉΡ‚Π΅ с этим шаблоном, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΡΠ²ΠΈΡ‚ΡŒ ΠΎ сСбС, дСлая ΠΏΡ€ΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ β€” просто быстро создайтС сайт, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ эту Ρ‚Π΅ΠΌΡƒ.

ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ, Π½ΠΎ Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»ΡΡŽΡ‰ΠΈΠΉ шаблон для Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€ΠΎΠ² Π·Π΄Π°Π½ΠΈΠΉ ΠΈΠ»ΠΈ Π΄Π΅Π»ΠΎΠ²Ρ‹Ρ… людСй. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡŽ AMP, эта Ρ‚Π΅ΠΌΠ° позволяСт Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-сайты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ быстро Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ΡΡ Π½Π° всСх Ρ‚ΠΈΠΏΠ°Ρ… устройств. Π­Ρ‚Π° Ρ‚Π΅ΠΌΠ° β€” простой способ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ свои ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹, услуги ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ.

Один ΠΈΠ· самых популярных бСсплатных HTML-шаблонов для Π΄ΠΈΠ·Π°ΠΉΠ½Π° ΠΈΠ½Ρ‚Π΅Ρ€ΡŒΠ΅Ρ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‡Π°Ρ€ΡƒΠ΅Ρ‚ Π²Π°ΡˆΠΈΡ… ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ². Π­Ρ‚ΠΎ ΠΎΡ‡Π°Ρ€ΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ Π°Π½ΠΈΠΌΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π½Ρ‹ΠΌΠΈ Ρ„ΠΎΡ‚ΠΎΠΎΠ±Π»ΠΎΠΆΠΊΠ°ΠΌΠΈ, ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ†Π²Π΅Ρ‚ΠΎΠ²ΠΎΠΉ схСмой, Π³ΠΎΡ‚ΠΎΠ²ΠΎΠΉ для ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройств графичСской Π³Π°Π»Π΅Ρ€Π΅Π΅ΠΉ, Ρ†Π²Π΅Ρ‚Π½Ρ‹ΠΌΠΈ Π°Π½ΠΈΠΌΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ Π·Π½Π°Ρ‡ΠΊΠ°ΠΌΠΈ ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… сСтСй ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠΌ. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, Ρ‚Π΅ΠΌΠ° Ρ†Π΅Π»Π΅Π²ΠΎΠΉ страницы Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΡ‚ вас ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ Π½Π°Π²Ρ‹ΠΊΠΎΠ² программирования.

Π’ΠΎΡ‚ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· HTML-шаблонов Ρ†Π΅Π»Π΅Π²Ρ‹Ρ… Π²Π΅Π±-страниц салона красоты вмСстС с конструктором Π²Π΅Π±-сайтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π²Π°ΠΌ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ своими Π²Π΅Π±-страницами Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ эту Ρ‚Π΅ΠΌΡƒ, Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½-компанию ΠΎ макияТС, стилС, физичСском Π·Π΄ΠΎΡ€ΠΎΠ²ΡŒΠ΅ ΠΈΠ»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΌ Π΄Ρ€ΡƒΠ³ΠΎΠΌ. ΠŸΡ€ΠΎΠ΄Π°ΠΆΠ° Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² ΠΈ услуг Π² Ρ‚ΠΎ ΠΆΠ΅ врСмя Π»Π΅Π³ΠΊΠΎ коррСктируСтся с использованиСм этого ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ шаблона Π²Π΅Π±-сайта.

Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π²Π΅Π±-шаблон для Ρ‚Π°Ρ‚Ρƒ-салонов. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ это, прСдполагая, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΡΠ²Π»ΡΠ΅Ρ‚Π΅ΡΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ этого ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° услуг. Π˜ΠΌΠ΅ΠΉΡ‚Π΅ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ быстро ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΄ΠΈΠ·Π°ΠΉΠ½ этого HTML-шаблона Π²ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ слоТностСй: настройтС спСцификации Π±Π»ΠΎΠΊΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΡ… ΡΡ‚ΠΈΠ»ΡŒ, ΠΈ просто Ρ‚Π°ΠΊ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ Π²Π΅Π±-шаблон своим содСрТимым.

Π­Ρ‚ΠΎ, нСсомнСнно, Π²Π΅Π±-шаблон ΠΏΡ€Π΅ΠΌΠΈΡƒΠΌ-класса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ восхищаСт Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ, ΠΎΡ‚Ρ‚Π΅Π½ΠΊΠ°ΠΌΠΈ ΠΈ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠ΅ΠΉ. ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅ эту ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ Ρ‚Π΅ΠΌΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ срСди Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΈ ΠΏΡ€ΠΈΠ²Π»Π΅Ρ‡ΡŒ Π΅Ρ‰Π΅ большС ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² для вашСго бизнСса с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π·Π°Ρ‚Ρ€Π°Ρ‚Π°ΠΌΠΈ. Благодаря этой ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π²Π΅Π±-Ρ‚Π΅ΠΌΠ΅ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ страницы Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ свою Π²Π΅Π±-компанию ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ свой ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ Π·Π° считанныС ΠΌΠΈΠ½ΡƒΡ‚Ρ‹.

Π­Ρ‚ΠΎΡ‚ шаблон содСрТит нСвСроятныС ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΈ тСкстовыС ΠΊΠ°Ρ€Ρ‚Ρ‹, ΠΈΠ½Π½ΠΎΠ²Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ΠΊΠ°Ρ€Ρ‚Ρ‹ Π±Π»ΠΎΠ³ΠΎΠ², ΠΌΠ½ΠΎΠ³ΠΎΡ†Π²Π΅Ρ‚Π½Ρ‹Π΅ этикСтки ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅, Ρ‡Ρ‚ΠΎ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ понравится посСтитСлям вашСго сайта. Π­Ρ‚ΠΎΡ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π²Π΅Π±-шаблон Ρ†Π΅Π»Π΅Π²ΠΎΠΉ страницы, нСсомнСнно, ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΠΈΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΊΡƒΡ€ΠΎΡ€Ρ‚ΠΎΠ² ΠΈ туристичСских агСнтств, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ это, бСзусловно, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для создания внСшнСго Π²ΠΈΠ΄Π° Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅.

Достойная ΠΈ инновационная Ρ‚Π΅ΠΌΠ° с Ρ‚Π΅ΠΌΠ½Ρ‹ΠΌΠΈ налоТСниями, изобраТСниями, Ρ„ΠΎΠ½ΠΎΠ²Ρ‹ΠΌΠΈ изобраТСниями ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ элСмСнтами, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ всю ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ваши ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ посСтитСли Π²Π΅Π±-сайта Ρ…ΠΎΡ‚Π΅Π»ΠΈ Π±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎ вас. Π¨Π°Π±Π»ΠΎΠ½ ΠΎΡ‡Π΅Π½ΡŒ прост Π² установкС ΠΈ позволяСт ΠΎΡ‡Π΅Π½ΡŒ быстро ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ собствСнный Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Π²Π΅Π±-сайт.

Если Π²Ρ‹ посмотритС Π½Π° этот HTML-шаблон здСсь, Π²Ρ‹ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΠΎΠ΄ΡƒΠΌΠ°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π±Ρ‹Π» создан Π±Π΅Π· кодирования. Он основан Π½Π° систСмС Bootstrap 4, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠΉ ΠΈ управляСмой извСстным ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Ρ‰ΠΈΠΊΠΎΠΌ Π²Π΅Π±-страниц, поэтому ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ Π²Π΅Π±-сайт совсСм нСслоТно, Π½Π΅ имСя Π½Π°Π²Ρ‹ΠΊΠΎΠ² программирования.

Π­Ρ‚ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ шаблон для объявлСния Ρ‚Π°ΠΊΠΎΠ³ΠΎ события, ΠΊΠ°ΠΊ Π΄ΠΆΠ°Π·ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€Π°Π·Π΄Π½ΠΈΠΊ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ прСдставлСниС ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Благодаря совмСстимости с AMP это позволяСт Π²Π°ΠΌ фантастичСски ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ свой сайт Π½Π° любом Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π΅. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ΄Π°Π²Π°Ρ‚ΡŒ Π±ΠΈΠ»Π΅Ρ‚Ρ‹ Π½Π° ΠΊΠΎΠ½Ρ†Π΅Ρ€Ρ‚Ρ‹, ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ Π²Π΅Π±-встрСчи ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅, работая с этой Ρ‚Π΅ΠΌΠΎΠΉ сайта.

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ спортсмСн, Π²Π°ΠΌ понравится этот шаблон ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ со всСми бСсплатными простыми HTML-шаблонами. Π—Π΄Π΅ΡΡŒ Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ расписания ΡƒΡ€ΠΎΠΊΠΎΠ², Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Ρ†Π΅Π½, слайдСры ΠΎΠ±Π·ΠΎΡ€ΠΎΠ², Π±Π»ΠΎΠΊΠΈ нашСй ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΊΠ°Ρ€Ρ‚Ρ‹ Google, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΡ‹. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ просто ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ†Π²Π΅Ρ‚Π°, изобраТСния, ΡˆΡ€ΠΈΡ„Ρ‚Ρ‹ ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ, Ссли Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ нСвСроятного ощущСния ΠΈ внСшнСго Π²ΠΈΠ΄Π°.

Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ этот ΠΌΠ°ΠΊΠ΅Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π²Π΅Π±-сайт, посвящСнный Π²ΠΈΠ΄Π°ΠΌ питания ΠΈ фитнСсу. Π§Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ отличаСтся ΠΎΡ‚ этой HTML-Ρ‚Π΅ΠΌΡ‹, Ρ‚Π°ΠΊ это ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Π±Π»ΠΎΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚: ΠΊΡ€ΡƒΠ³ΠΈ прогрСсса вмСстС с Ρ„ΠΎΠ½ΠΎΠ²Ρ‹ΠΌΠΈ изобраТСниями, систСмы члСнства, Π±Π»ΠΎΠΊΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅.

Автор записи

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *