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



Pdf көрінісі
бет231/238
Дата07.01.2022
өлшемі7,86 Mb.
#18670
түріКнига
1   ...   227   228   229   230   231   232   233   234   ...   238
Байланысты:
2 5343781172763690906

Рис. 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   ...   227   228   229   230   231   232   233   234   ...   238




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

    Басты бет