С Python и HTML

Это последняя статья из серии, состоящей из двух частей. Если вы еще не читали первую статью, посмотрите ее здесь.

Что вы узнаете:

  • Как завершить настройку системы аутентификации пользователей для вашего сайта

Что вам нужно:

  • Базовое понимание Python
  • Компьютер с установленным Python

Рекомендуемые:

  • Некоторый опыт работы с Django
  • IDE по вашему выбору

URL-адреса, HTML и файлы, о боже!

Начнем через urls.py,

# Import
from django.urls import path, include
# Inside urlpatterns
path('accounts/', include('django.contrib.auth.urls')),

django.contrib.auth.urls даст много URL-адресов, нам нужно сосредоточиться на входе в систему.

Когда мы пытаемся перейти по этому URL-адресу, появляется это сообщение об ошибке.

Давайте разберемся с этой ошибкой.

Template Они просят шаблон, поэтому нам нужно создать файл в папке шаблонов.

registration/login.html Это просит нас создать файл с именем login.html в папке с именем registration.

Теперь, если мы перезагрузим http://127.0.0.1:8000/accounts/login/, мы получим пустую страницу.

Нам нужно будет написать немного HTML.

Поскольку в Django уже есть форма входа, мы можем добавить

<!-- <br> adds space so that the form is not stuck to the top of the screen -->
<br>
<form method="POST" action="" class="container-fluid">
{% csrf_token %}
{{form.as_p}}
<input type="submit" class="btn btn-primary mb-2"/>
</form>

получить форму.

Вы также можете импортировать Bootstrap, чтобы сделать код немного красивее. Поместите это в теги заголовка.

<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>

Однако, когда мы вводим свои учетные данные и вход в систему, он перенаправляет нас на accounts/profile. Чтобы изменить перенаправление, вы можете добавить эту строку кода под кнопкой отправки.

<td><input type="hidden" name="next" value="/REDIRECT_URL_PATTERN/"></td>

templates/registration/login.html:

Вы также можете добавить navbar с помощью Bootstrap.

<li class="nav-item">
<a class="nav-link" href="URL FOR HOME PAGE">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" href="URL FOR LOGIN">Login</a>
</li>
<li class="nav-item">
<a class="nav-link" href="URL TO REGISTER">Register</a>
</li>

Выполнение

Чтобы проверить, вошел ли пользователь в систему, можно сделать это в вашем HTML-файле, установив флажок

{% if user.is_authenticated %}
{% endif %}

Чтобы получить имя пользователя:

{{ user }}

Я собрал этот веб-сайт, который использует систему входа в систему.

URL-адреса для запоминания

Для регистрации: /accounts/register

Для входа: /accounts/login

Для выхода (если вы следовали инструкциям выше, этот URL не требует дополнительных действий): /accounts/logout/

Вывод

Спасибо!

Надеюсь, вам понравилось это читать, и что он научил вас больше о Django. Если у вас есть какие-либо вопросы, предложения, общие отзывы или ваш код не работает, оставьте комментарии, и я отвечу.

Продолжайте кодировать!