Django | Gérer les connections

Il existe plusieurs manières d'utiliser le login de base de Django. Nous verrons dans ce chapitre pas forcément la manière la plus facile à  mettre en oeuvre, mais la plus souple.


Alors premièrement nous allons configurer notre fichier settings:



LOGIN_REDIRECT_URL = '/backoffice/'
LOGIN_URL = '/'
TEMPLATE_DIRS = (
BASE_DIR + '/templates/',
)

Puis nous allons créer nos vues login et logout


from django.shortcuts import render
from django.contrib.auth import authenticate, login, logout
from django.http import *
from django.views.generic import TemplateView
from django.conf import settings

class LoginView(TemplateView):

template_name = 'front/index.html'

def post(self, request, **kwargs):

username = request.POST.get('username', False)
password = request.POST.get('password', False)
user = authenticate(username=username, password=password)
if user is not None and user.is_active:
login(request, user)
return HttpResponseRedirect( settings.LOGIN_REDIRECT_URL )

return render(request, self.template_name)


class LogoutView(TemplateView):

template_name = 'front/index.html'

def get(self, request, **kwargs):

logout(request)

return render(request, self.template_name)

Et les templates que nous associons avec:


templates/front/index.html


<'form method=post  role=form action=/>'
{% csrf_token %}
<'input type=text name=username placeholder=Utilisateur>'
<'input type=password name=password placeholder=Mot de passe>'
<'input type=submit value=login />'
<'/form>'

templates/backoffice/index.html


<'p>'Vous êtes identifié!<'/p>'
<'p>'<'a href=/logout/>'Sortir<'/a>'<'/p>'

Il nous faut maintenant indiquer au routeur les addresses utilisées:


from django.conf.urls import patterns, include, url
from rest_framework import routers
from eboutique.views import *
from erp.views import *
from django.contrib.auth.decorators import login_required

urlpatterns = patterns(',
url(r'^$', LoginView.as_view()),
url(r'^logout/$', LogoutView.as_view()),
url(r'^backoffice/$', login_required(TemplateView.as_view(template_name='backoffice/index.html'))),
)

Pour créer un superutilisateur vous pouvez passer par la ligne de commande:


python manage.py createsuperuser

Nombre de Lectures : 760
Date de mise en ligne : 05 mai 2016 à 13:08

Les Catégories

Django

Une Pub