Приложение для аутентификации Django

Я только начал изучать django и немного заблудился между различными думками и устаревшими учебниками.

Что я хочу достичь, так это создать простое приложение приборной панели, которое также содержит некоторые бэкенд скрипты для интеграции различных apis, большинство из которых являются открытыми API, такими как API погоды, API календаря и т.д. просто для обучения.

Но мне нужно создать страницу входа в приложение, и текущие руководства по аутентификационному модулю django немного запутаны, поскольку они никогда не дают мне, как реализовать форму входа в бэкэнд аутентификации. Мне нужна более простая документация для этого.

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

Тем временем я также проверю официальную документацию.

Спасибо.

Итак, это зависит от того, какое представление вы используете для обработки входа в систему, поскольку существует два типа представлений: основанные на классах и основанные на функциях. Я использую представление на основе функций, поэтому я объясню вам это.

Сначала нужно создать html-страницу, на которой будет форма для ввода имени пользователя и пароля. Я предполагаю, что вы знаете, как это сделать и как обрабатывать форму в html (если нет, пожалуйста, комментируйте, я объясню вам и это). Итак, представление, которое будет обрабатывать аутентификацию входа, выглядит следующим образом

from django.contrib.auth import login,authenticate

def login_page(request):
   if request.method == 'POST':
        username =  request.POST.get('username')
        password = request.POST.get('password')
        user = authenticate(request, username= username, password= password)
        if user is not None:
            login(request, user)
            return redirect('any_page_you_want_to_send_the_user')
   else:
       return render(request, 'login.html')

Итак, код выше делает следующее: он принимает POST-запрос, который вы отправляете из вашей формы входа в систему, затем он получает имя пользователя и пароль из этой формы. Затем он использует функцию django authenticate для аутентификации пользователя. Затем проверяется, существует ли пользователь на самом деле или он None (не существует). И если условие истинно, то происходит вход в систему текущего пользователя.

Вернуться на верх