Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

БФИ2203 Мячина ввит6

.docx
Скачиваний:
0
Добавлен:
02.08.2026
Размер:
468 Кб
Скачать

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ

Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования

Московский технический университет связи и информатики

(МТУСИ)

Лабораторная работа №6

«Создание формы для регистрации и авторизации»

Выполнила:

студентка группы БФИ2203

Мячина Лада Андреевна

Проверил:

Фурлетов Юрий Михайлович

Москва 2023

Цель работы: создать дополнительную страницу для регистрации и авторизации.

Задание:

  • Создайте шаблон и настройте адрес для отображения формы регистрации;

  • Создайте представление, которое будет обрабатывать поступающие запросы и регистрировать новых пользователей. Не забудьте сделать проверку на то, что отправленные поля не являются пустыми, а введенное имя пользователя уникально;

  • Создайте стили, подключив CSS-файл к шаблону;

  • Добавьте в шапку страницы всех записей и страницы для определенных статей, ссылку на регистрацию в верхнем правом углу (стиль ссылки сделать такой же, как у ссылки “Все статьи” на собственных страницах постов в предыдущих работах).

  • Создайте шаблон и настройте адрес для отображения формы авторизации;

  • Создайте представление, которое будет обрабатывать поступающие запросы и авторизовывать зарегистрированных пользователей. Не забудьте сделать проверку на то, что отправленные поля не являются пустыми, а введенные имя пользователя и пароль соответствуют одному из зарегистрированных аккаунтов;

  • Создайте стили, подключив CSS-файл к шаблону;

  • Загрузите ваш проект на любой гит-репозиторий (GitHub, GitLab, Google Code, Bitbucket и т.п.).

Ход работы:

  1. Создание страницы регистрации. Добавление обработки на не заполненные поля и уникальность имени пользователя. В шапку помещены ссылки на авторизацию и архив статей.

Листинг

def registration(request): if request.method == "POST": form = { 'username': request.POST["username"], 'mail': request.POST["mail"], 'password': request.POST["password"] } art = None try: art = User.objects.get(username=form["username"]) art = User.objects.get(email=form["mail"]) # если юзер существует, то ошибки не произойдет и программа удачно доберется до следующей строчки print (u"Такой пользователь уже есть") except User.DoesNotExist: print (u"Такого пользователя еще нет") if form["username"] and form["mail"] and form["password"] and art is None: art = User.objects.registration(username=form["username"], email=form["mail"], password=form["password"]) return redirect(archive) else: if art is not None: form['errors'] = u"Логин или почта уже заняты" else: form['errors'] = u"Не все поля заполнены" return render(request, 'registration.html', {'form': form}) else: return render(request, 'registration.html', {})

Html код:

<!DOCTYPE html>

<html>

<head>

{% load static %}

<link rel="stylesheet" href="{{ STATIC_URL }}/static/articles.css">

<title>Регистрация</title>

</head>

<body>

<h1>Регистрация</h1>

<a href="{% url 'user_login' %}">Авторизация</a> |

<a href="{% url 'archive' %}">Список всех статей</a>

<form method="POST">

{% csrf_token %}

{{ form.as_p }}

<button type="submit">Отправить</button>

</form>

{% if form.errors %}

<p>{{ form.errors }}</p>

{% endif %}

<br>

</body>

</html>

  1. Создание страницы авторизации.

Листинг

def user_login(request): if request.method == "POST": form = { 'username': request.POST.get("username", ""), 'password': request.POST.get("password", "") } if form["username"] and form["password"]: user = authenticate(request, username=form["username"], password=form["password"]) if user is not None: login(request, user) return redirect('archive') else: form['errors'] = u"Такой пользователь не зарегистрирован!" else: form['errors'] = u"Не все поля заполнены" return render(request, 'user_login.html', {'form': form}) else: return render(request, 'user_login.html', {})

Html код:

<!DOCTYPE html>

<html>

<head>

{% load static %}

<link rel="stylesheet" href="{{ STATIC_URL }}/static/articles.css">

<title>Вход в систему</title>

</head>

<body>

<h1>Авторизация</h1>

<a href="{% url 'registration' %}">Регистрация</a> |

<a href="{% url 'archive' %}">Список всех статей</a>

{% if error %}

<p style="color: red">{{ error }}</p>

{% endif %}

<form method="post">

<label for="username">Имя пользователя:</label><br>

<input type="text" id="username" name="username"><br><br>

<label for="password">Пароль:</label><br>

<input type="password" id="password" name="password"><br><br>

<input type="submit" value="Войти">

</form>

</body>

</html>

Новые зарегистрированные пользователи:

  1. На странице архива статей добавление ссылок на регистрацию, авторизацию и создание статей.

  1. Ссылка на GitHub: https://github.com/LadaMyachina/labVvIT6