INICIO DA AULA

Criação da fucionalidade de Login

views.py atualizado

from django.views.generic import View
from django.shortcuts import render, redirect

class Login(View):

    def get(self, request):
        contexto={'mensagem': ''}
        if request.user.is_authenticated:
            return redirect("/veiculo")
        else:
            return render(request, 'autenticacao.html', contexto)   

implementar o “verbo” POST:

views.py atualizado para conter login e logout

from django.views.generic import View
from django.shortcuts import render, redirect
from django.contrib.auth import authenticate, login, logout
from django.conf import settings

class Login(View):

    def get(self, request):
        contexto={'mensagem': ''}
        if request.user.is_authenticated:
            return redirect("/veiculo")
        else:
            return render(request, 'autenticacao.html', contexto)   

    def post(self, request):
        
        #Obtem as crendenciais de autenticação do formulário
        usuario = request.POST.get('usuario', None)
        senha = request.POST.get('senha', None)

        #Verificar as crendencias de autenticação fornecidas
        user = authenticate(request, username=usuario, password=senha)
        if user is not None:

        #Verificar se o usuario esta ativo
            if user.is_active:
                login(request, user)
                return redirect("/veiculo")

            return render(request, 'autenticacao.html', {'mensagem': ' Usuario inatico'})
    
        return render(request, 'autenticacao.html', {'mensagem': 'Usuario ou Senha Invalidos'})

class Logout(View):
    """
    Class Based View para realizar logout de usuarios.
    """
    def get(self, request):
        logout(request)
        return redirect(settings.LOGIN_URL)

add em settings.py


130 LOGUIN_URL = '/'

criação da rota de logout em urls.py

from django.contrib import admin
from django.urls import path
from sistema.views import Login, Logout

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', Login.as_view(), name='login'),
    path('logout/', Logout.as_view(), name='logout'),
]

Fora do runserver iniciar um modulo “veiculo”:

python3 manage.py startapp veiculo

atualizar o sistema/urls.py (urls mãe) com ‘veiculo’

from django.contrib import admin
from django.urls import path, include
from sistema.views import Login, Logout

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', Login.as_view(), name='login'),
    path('logout/', Logout.as_view(), name='logout'),
    path('veiculo/', include('veiculo.urls'), name='veiculo'),

]

criar um veiculo/urls.py