Cadastro e Login com Python - #05 Login
27/01/2022Nesta aula criaremos o sistema de login utilizando Python e Django. Faremos a autenticação de usuário e senha para liberar o acesso do usuário.
Login com Python e Django
app/templates/home.html
Vamos começar criando um link simples para o login na home:
<a href="/painel/">Painel de Login</a><br>
project/urls.py
Vamos criar a rota de login (template), rota de processamento dos dados de login e a página após o login (dashboard):
path('painel/', painel),
path('dologin/', dologin),
path('dashboard/', dashboard),
app/views.py
Na views vamos criar as funções relativas as rotas recém criadas. Essas rotas serão responsáveis pela autenticação e redirecionamento do usuário:
#Formulário do painel de login
def painel(request):
return render(request,'painel.html')
#Processa o login
def dologin(request):
data = {}
user = authenticate(username=request.POST['user'], password=request.POST['password'])
if user is not None:
login(request, user)
return redirect('/dashboard/')
else:
data['msg'] = 'Usuário ou Senha inválidos!'
data['class'] = 'alert-danger'
return render(request,'painel.html',data)
#Página inicial do dashboard
def dashboard(request):
return render(request,'dashboard/home.html')
Na views ainda, não esqueça de importar no top level da página, o módulo redirect, authenticate e login:
from django.shortcuts import render, redirect
from django.contrib.auth import authenticate, login
app/templates/painel.html
Vamos criar a página do painel de login, onde virá o formulário com usuário e senha:
{% extends 'main.html' %}
{% block content %}
<form name="formPainel" id="formPainel" method="post" action="/dologin/">
<div class="col-6 mt-4 m-auto">
{% if msg %}
<div class="alert {{class}}">
{{msg}}
</div>
{% endif %}
{% csrf_token %}
<input class="form-control mt-4" type="text" name="user" id="user" placeholder="Nome do Usuário:">
<input class="form-control mt-4" type="password" name="password" id="password" placeholder="Senha:">
<input class="btn btn-dark mt-4" type="submit" value="Entrar">
</div>
</form>
{% endblock %}
app/templates/dashboard/home.html
Vamos criar o diretório dashboard dentro de templates, e vamos criar o arquivo home.html que será a página inicial da área restrita:
{% extends 'main.html' %}
{% block content %}
{% if request.user.is_authenticated %}
Área Restrita
Bem vindo
{% else %}
Você não tem acesso a essa área!
{% endif %}
{% endblock %}
Por hoje é só! Sucesso nos códigos e na vida!