Рис. 19.4.
Страница входа
Выход
Теперь необходимо предоставить пользователям возможность выхода из прило-
жения. Мы включим в
base .html
ссылку для выхода пользователя; при щелчке на
этой ссылке открывается страница, подтверждающая, что выход был выполнен
успешно.
440
Глава 19 • Учетные записи пользователей
Добавление ссылки для выхода
Теперь нужно создать ссылку для выхода. Мы добавим ее в файл
base .html
, что-
бы она была доступна на каждой странице, и включим в секцию
{%
if
user.is_
authenticated
%}
, чтобы ссылка была видна только пользователям, уже выпол-
нившим вход:
base.html
...
{% if user.is_authenticated %}
Hello, {{ user.username }}.
log out
{% else %}
...
По умолчанию схеме URL для выхода назначается имя
'logout'
.
Страница подтверждения выхода
Пользователь должен знать, что выход прошел успешно, поэтому представление по
умолчанию для выхода строит страницу на базе шаблона
logged_out .html
, который
мы сейчас создадим. Он представляет простую страницу с уведомлением о том, что
пользователь вышел из сеанса работы с приложением. Сохраните файл в каталоге
templates/registration
— в том же каталоге, в котором был сохранен файл
login .html
:
logged_out.html
{% extends "learning_logs/base.html" %}
{% block content %}
You have been logged out. Thank you for visiting!
{% endblock content %}
Рис. 19.5.
Страница выхода подтверждает, что выход был выполнен успешно
Создание учетных записей пользователей
441
Ничего другого на этой странице быть не должно, потому что
base .html
предостав-
ляет ссылки на домашнюю страницу и страницу входа на случай, если пользователь
захочет вернуться к какой-либо из этих страниц.
На рис. 19.5 изображена страница выхода так, как ее видит пользователь, выпол-
нивший вход. Оформление страницы минимально, потому что сейчас нас в первую
очередь интересует работа сайта. Когда необходимые функции заработают, можно
переходить к стилевому оформлению сайта и приданию ему более профессиональ-
ного вида.
Страница регистрации
Теперь мы построим страницу для регистрации новых пользователей. Для этой
цели мы используем класс Django
UserCreationForm
, но напишем собственную
функцию представления и шаблон.
URL-адрес регистрации
Следующий код предоставляет шаблон URL для страницы регистрации — также
в файле
users/urls .py
:
urls.py
""" Определяет схемы URL для пользователей. """
from django.urls import path, include
from . import views
app_name = 'users'
urlpatterns = [
# Включить URL авторизации по умолчанию.
path('', include('django.contrib.auth.urls')),
# Страница регистрации.
path('register/', views.register, name='register'),
]
Мы импортируем модуль
views
из
users
; этот модуль необходим, потому что мы
пишем собственное представление для страницы регрессии. Шаблон соответствует
URL
http://localhost:8000/users/register/
и отправляет запросы функции
register()
,
которую мы сейчас напишем.
Функция представления register()
Функция представления
register()
должна вывести пустую форму регистрации
при первом запросе страницы регистрации, а затем обработать заполненную форму
регистрации при отправке данных. Если регистрация прошла успешно, функция
также должна выполнить вход для нового пользователя. Включите следующий
код в
users/views .py
:
|