С 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. Если у вас есть какие-либо вопросы, предложения, общие отзывы или ваш код не работает, оставьте комментарии, и я отвечу.
Продолжайте кодировать!