Регулярные выражения используются почти во всех языках программирования . Они чрезвычайно
полезны, но, чтобы освоить их, понадобится время . Если что-то осталось непонятным, не беспо-
койтесь; в ходе работы над проектом мы рассмотрим много примеров .
Начало
работы над приложением 397
Написание представления
Функция представления получает информацию из запроса, подготавливает данные,
необходимые для построения страницы, и возвращает данные браузеру — часто
с использованием шаблона, определяющего внешний вид страницы.
Файл
views .py
в
learning_logs
был сгенерирован автоматически при выполнении ко-
манды
python
manage.py
startapp
. На данный момент его содержимое выглядит так:
views.py
from django.shortcuts import render
# Создайте здесь свои представления.
Сейчас файл только импортирует функцию
render()
, которая генерирует ответ
на основании данных, полученных от представлений. Представление домашней
страницы должно быть записано в следующем виде:
from django.shortcuts import render
def index(request):
"""Домашняя страница приложения Learning Log"""
return render(request, 'learning_logs/index.html')
Если URL запроса совпадает с только что определенной схемой, Django ищет
в файле
views .py
функцию с именем
index()
, после чего передает этой функции
представления объект запроса. В нашем случае никакая обработка данных для
страницы не нужна, поэтому код функции сводится к вызову
render()
. Функция
render()
использует два аргумента — исходный объект запроса и шаблон, исполь-
зуемый для построения страницы. Давайте напишем этот шаблон.
Написание шаблона
Шаблон задает структуру веб-страницы. Он определяет общий внешний вид,
а Django заполняет его соответствующими данными при каждом запросе страницы.
Шаблон может обращаться к любым данным, полученным от представления. Так
как наше представление домашней страницы никаких данных не предоставляет,
шаблон получается относительно простым.
В каталоге
learning_logs
создайте новый каталог с именем
templates
. В каталоге
templates
создайте другой каталог с именем
learning_logs
. На первый взгляд такая
структура кажется избыточной (каталог
learning_logs
в каталоге
templates
внутри
каталога
learning_logs
), но созданная таким образом структура будет однозначно
интерпретироваться Django даже в контексте большого проекта, состоящего из мно-
жества отдельных приложений. Во внутреннем каталоге
learning_logs
создайте
новый файл с именем
index .html
. Включите в него следующий текст:
index.html
Learning Log
Learning Log helps you keep track of your learning, for any topic you're
learning about.
398 Глава 18 • Знакомство с Django
Это очень простой файл. Если вы не знакомы с синтаксисом HTML, теги
обозначают абзацы. Тег
открывает абзац, а тег
закрывает его. Наша стра-
ница содержит два абзаца: первый содержит заголовок, а второй описывает, что
пользователь может сделать с помощью приложения Learning Log.
Теперь при запросе базового URL-адреса проекта http://localhost:8000/ вы увидите
только что построенную страницу вместо страницы по умолчанию. Django берет
запрошенный URL-адрес и видит, что он совпадает со схемой
r'^$'
; в этом случае
Django вызывает функцию
views.index()
, что приводит к построению страницы
с использованием шаблона, содержащегося в
index .html
. Полученная страница по-
казана на рис. 18.3.
Достарыңызбен бөлісу: