Книга «Изучаем Python»



Pdf көрінісі
бет255/266
Дата03.03.2023
өлшемі7,86 Mb.
#170986
түріКнига
1   ...   251   252   253   254   255   256   257   258   ...   266
Байланысты:
Изучаем Python. Программирование игр, визуализация данных, веб-приложения ( PDFDrive )

423
Рис. 19.4.
Страница входа
В заголовке страницы должно выводиться сообщение с указанием имени пользо-
вателя.
Выход
Теперь необходимо предоставить пользователям возможность выхода из приложе-
ния. Мы не будем строить отдельную страницу для выхода; пользователь просто 
щелкает на ссылке и возвращается к домашней странице. Мы определяем схему 
URL для ссылки выхода, пишем функцию представления и предоставляем ссылку 
выхода в 
base .html
.
URL-адрес выхода
Следующий код определяет схему URL для выхода, соответствующую URL 
http://localhost:8000/users/logout/
. Файл 
users/urls .py
выглядит так:
urls.py
...
urlpatterns = [
# Страница входа
...
# Страница выхода
url(r'^logout/$', views.logout_view, name='logout'),
]
Схема URL отправляет запрос функции 
logout_view()
, имя которой выбрано так, 
чтобы оно отличалось от имени функции 
logout()
, вызываемой из представления. 
(Проследите за тем, чтобы изменения вносились в файл 
users/urls .py
, а не в файл 
learning_log/urls .py
.)
Функция представления logout_view()
Функция 
logout_view()
тривиальна: мы просто импортируем функцию Django 
logout()
, вызываем ее, а затем возвращаем пользователя на домашнюю страницу. 
Откройте файл 
users/views .py
и введите следующий код:


424
Глава 19 • Учетные записи пользователей
views.py
from django.http import HttpResponseRedirect
from django.core.urlresolvers import reverse
 
from django.contrib.auth import logout
def logout_view(request):
"""Завершает сеанс работы с приложением."""
 
logout(request)
 
return HttpResponseRedirect(reverse('learning_logs:index'))
Мы импортируем функцию 
logout()
из 
django.contrib.auth

. В функции вы-
зывается функция 
logout()

, в аргументе которой должен передаваться объект 
запроса. Затем происходит возврат к домашней странице 

.
Ссылка на представление выхода
Теперь нужно создать ссылку для выхода. Мы включим ее в 
base .html
, чтобы 
она была доступна на каждой странице, и включим в секцию 
{%
if
user.is_
authenticated
%}
, чтобы ссылка была видна только пользователям, уже выпол-
нившим вход:
base.html
...
{% if user.is_authenticated %}
Hello, {{ user.username }}.
log out
{% else %}
log in
{% endif %}
...
На рис. 19.5 изображена текущая домашняя страница так, как ее видит пользова-
тель, выполнивший вход. Оформление страницы минимально, потому что сейчас 
нас в первую очередь интересует работа сайта. Когда необходимые функции зара-
ботают, можно переходить к стилевому оформлению сайта и приданию ему более 
профессионального вида.


Достарыңызбен бөлісу:
1   ...   251   252   253   254   255   256   257   258   ...   266




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет