М97 Изучаем Python: программирование игр, визуализация данных, веб-приложения


Глава 19 • Учетные записи пользователей views.py



Pdf көрінісі
бет321/334
Дата18.10.2023
өлшемі6,19 Mb.
#186390
1   ...   317   318   319   320   321   322   323   324   ...   334
Байланысты:
Изучаем Python

442
Глава 19 • Учетные записи пользователей
views.py
from django.shortcuts import render, redirect
from django.contrib.auth import login
from django.contrib.auth.forms import UserCreationForm
def register(request):
"""Регистрирует нового пользователя."""
if request.method != 'POST':
# Выводит пустую форму регистрации.

form = UserCreationForm()
else:
# Обработка заполненной формы.

form = UserCreationForm(data=request.POST)

if form.is_valid():

new_user = form.save()
# Выполнение входа и перенаправление на домашнюю страницу.

login(request, new_user)

return redirect('learning_logs:index')
# Вывести пустую или недействительную форму.
context = {'form': form}
return render(request, 'users/register.html', context)
Сначала импортируются функции 
render()
и 
redirect()
. Затем мы импортируем 
функцию 
login()
для выполнения входа пользователя, если регистрационная 
информация верна. Также импортируется класс 
UserCreationForm
по умолча-
нию. В функции 
register()
мы проверяем, отвечает ли функция на запрос POST. 
Если нет, создается экземпляр 
UserCreationForm
, не содержащий исходных 
данных 

.
В случае ответа на запрос POST создается экземпляр 
UserCreationForm
, основан-
ный на отправленных данных 

. Мы проверяем, что данные верны 

; в данном 
случае что имя пользователя содержит правильные символы, пароли совпадают, 
а пользователь не пытается вставить вредоносные конструкции в отправленные 
данные.
Если отправленные данные верны, мы вызываем метод 
save()
формы для со-
хранения имени пользователя и хеша пароля в базе данных 

. Метод 
save()
возвращает только что созданный объект пользователя, который сохраняется 
в 
new_user
. После того как информация пользователя будет сохранена, мы вы-
полняем вход; этот процесс состоит из двух шагов: сначала вызывается функция 
login()
с объектами 
request
и 
new_user

, которая создает действительный сеанс 
для нового пользователя. Наконец, пользователь перенаправляется на домашнюю 
страницу 

, где приветствие в заголовке сообщает о том, что регистрация про-
шла успешно.
В конце функции строится страница, которая будет либо пустой формой, либо от-
правленной формой, содержащей недействительные данные.


Создание учетных записей пользователей
443
Шаблон регистрации
Шаблон страницы регистрации похож на шаблон страницы входа. Проследите за 
тем, чтобы он был сохранен в одном каталоге с 
login .html
:


Достарыңызбен бөлісу:
1   ...   317   318   319   320   321   322   323   324   ...   334




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

    Басты бет