436
Глава 19 •
Учетные записи пользователей
телям возможность начинать и завершать сеанс работы с приложением, а также
научились использовать класс Django
UserCreationForm
для создания новых
учетных записей.
После создания простой системы аутентификации и регистрации пользователей
вы ограничили доступ пользователей к некоторым страницам; для этого исполь-
зовался декоратор
@login_required
. Затем данные были связаны с конкретными
пользователями при помощи отношения внешнего ключа. Вы также узнали,
как выполнить миграцию базы данных, когда миграция требует ввести данные
по умолчанию.
В последней части главы вы узнали, как ограничить состав данных, просматрива-
емых пользователем, с использованием функций представления. Для чтения со-
ответствующих данных использовался метод
filter()
, а владелец запрашиваемых
данных сравнивался с текущим пользователем.
Не всегда бывает сразу понятно, какие данные должны быть доступны всем поль-
зователям, а какие данные следует защищать, но этот навык приходит с практикой.
Решения, принятые нами в этой главе для защиты данных пользователей, наглядно
показывают, почему при построении проекта желательно работать в команде: если
кто-то просматривает код вашего проекта, это повышает вероятность выявления
плохо защищенных областей.
К настоящему моменту мы построили полностью функционирующий проект, ра-
ботающий на локальной машине. В последней главе мы доработаем оформление
приложения Learning Log, чтобы оно выглядело более привлекательно. Также про-
ект будет развернут на сервере, чтобы любой пользователь с доступом к Интернету
мог зарегистрироваться и создать учетную запись.
20
Оформление
и развертывание
приложения
Приложение Learning Log
уже вполне работоспособно, но
оно не имеет стилевого
оформления и работает только на локальной машине. В этой главе мы определим
для проекта простое, но профессиональное оформление, а затем развернем его
на сервере, чтобы любой желающий мог создать учетную запись.
Для стилевого оформления будет использоваться библиотека Bootstrap — набор
инструментов для оформления веб-приложений, с которыми они будут выглядеть
профессионально на любых современных устройствах, от большого монитора с пло-
ским экраном до смартфона. Для этого мы воспользуемся приложением
django-
bootstrap3
, а вы заодно потренируетесь в использовании приложений, созданных
другими разработчиками Django.
Для развертывания Learning Log будет использоваться Heroku — сайт, по-
зволяющий загрузить ваш проект на один из его серверов, чтобы сделать его
доступным для любого пользователя с подключением к Интернету. Также
мы начнем пользоваться системой контроля версий Git для отслеживания
изменений в проекте.
Когда работа с Learning Log будет завершена, вы будете уметь разрабатывать про-
стые веб-приложения, придавать им качественный внешний вид и развертывать
их на работающих серверах. Также по мере накопления опыта вы научитесь поль-
зоваться ресурсами с материалами более высокого уровня.
Оформление
приложения Learning Log
До сих пор мы намеренно игнорировали оформление приложения, чтобы сосредо-
точиться на его функциональности. И это вполне разумный подход к разработке,
потому что приложение приносит пользу только в том случае, если оно работает.
Конечно, когда приложение начинает работать, оформление выходит на первый
план, чтобы пользователи захотели работать с ним.
В этом разделе я кратко опишу приложение
django-bootstrap3
и покажу, как ин-
тегрировать его в проект и подготовить к развертыванию.