Большое спасибо за помощь.
Я сделал простую форму входа в django. После ввода правильных данных она перебрасывает на другую страницу (result.html), но вы также можете попасть на страницу, набрав адрес страницы в браузере. Я не знаю, как сделать так, чтобы страница была доступна только после входа в систему.
home.html
{% extends "index.html" %}
{% block content %}
<div class="card border-secondary">
<div class="card-body">
<h4 class="card-title">Login form</h4>
<form method="post">
{% csrf_token %}
<label>Login</label>
<input class="m-3" type="text" name="txtLogin" placeholder="login (admin)">
<br>
<label>Password</label>
<input class="m-3" type="text" name="txtPassword" placeholder="Password (admin)">
<hr>
<button name="btnSend" type="submit" class="btn btn-secondary">Log in</button>
</form>
</div>
</div>
views.py
def home(request):
if request.method == 'POST' and 'btnSend' in request.POST :
login = request.POST.get('txtLogin')
password = request.POST.get("txtPassword")
if login=="admin" and password=="admin":
return HttpResponseRedirect('/main/result')
else:
return HttpResponseRedirect('/main/home')
template = loader.get_template('home.html')
context={}
return HttpResponse(template.render(context,request))
def result(request):
template = loader.get_template('result.html')
context={
}
return HttpResponse(template.render(context,request))
Существует декоратор @login_required
https://docs.djangoproject.com/en/4.0/topics/auth/default/#the-login-required-decorator
Кроме того, в Django не так обрабатываются логины/аутентификация.