Create Session in Django | Login Session

Assuming you are created models & Login , Register html Template

Go to URLS.PY

path('login/', views.login, name='login'),
path('register/', views.register, name='register'),
path('index/', views.index, name='index'),
path('logout/', views.logout, name='logout'),

Go to VIEWS.PY

def register(request):
if request.method=='POST':
username=request.POST.get('username')
email = request.POST.get('email')
password = request.POST.get('password')

user_list= models.administrator.objects.filter(username= username)

error_name=[]
if user_list:
error_name='The user name already exists'

return render (request, 'register.html',{'error_name': error_name})
else:
username=models.administrator.objects.create(username=username, password=password,email=email)
username.save()

return redirect('/login')
return render(request, 'register.html')

def login(request):
if request.method == 'POST':
username = request.POST.get('username')
password = request.POST.get('password')

obj_user = models.administrator.objects.filter(username=username, password=password)
if obj_user:
request.session["uid"]=request.POST.get('username')
messages.success(request, "Login Successfully.")
return redirect('/index')
error = 'Wrong username and password'

return render(request, "login.html", locals()) #--locals() passed to render() is to send all local variables of the view

def index(request):
if request.session.has_key('uid'):
return render(request, "index.html")
else:
return redirect('/login')


def logout(request):
try:
del request.session["uid"]
except KeyError:
pass
return redirect("/login")

Leave a Comment

Your email address will not be published. Required fields are marked *