×

Créé une application de gestion d’authentification avec Python Django

Créé une application de gestion d’authentification avec Python Django

La création d’une application de gestion d’authentification avec Django peut être un projet intéressant pour comprendre les fonctionnalités de base de Django, y compris l’authentification utilisateur. Voici un tutoriel complet avec un code d’exemple pour créer une telle application :

Prérequis :

  • Python installé sur votre système.
  • Django installé. Vous pouvez l’installer avec pip install django.

Étapes pour créer l’application de gestion d’authentification :

Étape 1 : Création du projet Django

Ouvrez votre terminal et exécutez la commande suivante pour créer un nouveau projet Django nommé « auth_project » :

django-admin startproject auth_project
cd auth_project

Étape 2 : Création de l’application Django

Ensuite, créez une nouvelle application Django appelée « auth_app » avec la commande suivante :

python manage.py startapp auth_app

Étape 3 : Configuration de la base de données

Ouvrez le fichier auth_project/settings.py et ajoutez "auth_app" à la liste INSTALLED_APPS :

INSTALLED_APPS = [
    # ...
    'auth_app',
    # ...
]

Configurez également la base de données dans le même fichier en spécifiant le moteur de base de données (par exemple, SQLite) :

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}

Étape 4 : Configuration de l’authentification

Ajoutez la configuration d’authentification Django à votre fichier auth_project/settings.py :

AUTHENTICATION_BACKENDS = (
    'django.contrib.auth.backends.ModelBackend',
)

AUTH_USER_MODEL = 'auth_app.CustomUser'

LOGIN_REDIRECT_URL = '/'
LOGOUT_REDIRECT_URL = '/'

Étape 5 : Création du modèle utilisateur personnalisé

Dans le fichier auth_app/models.py, créez un modèle utilisateur personnalisé en étendant AbstractUser. Vous pouvez ajouter des champs personnalisés au modèle utilisateur si nécessaire :

from django.contrib.auth.models import AbstractUser
from django.db import models

class CustomUser(AbstractUser):
    # Ajoutez des champs personnalisés si nécessaire
    pass

Étape 6 : Configuration de l’application d’authentification

Dans le fichier auth_project/settings.py, spécifiez votre modèle utilisateur personnalisé dans la configuration d’authentification :

AUTH_USER_MODEL = 'auth_app.CustomUser'

Étape 7 : Création des vues et des URL

Créez des vues pour l’inscription, la connexion et la déconnexion dans le fichier auth_app/views.py. Par exemple :

from django.contrib.auth import login, authenticate, logout
from django.shortcuts import render, redirect
from .forms import CustomUserCreationForm

def signup(request):
    if request.method == 'POST':
        form = CustomUserCreationForm(request.POST)
        if form.is_valid():
            user = form.save()
            login(request, user)
            return redirect('home')
    else:
        form = CustomUserCreationForm()
    return render(request, 'signup.html', {'form': form})

def login_view(request):
    if request.method == 'POST':
        username = request.POST['username']
        password = request.POST['password']
        user = authenticate(request, username=username, password=password)
        if user is not None:
            login(request, user)
            return redirect('home')
    return render(request, 'login.html')

def logout_view(request):
    logout(request)
    return redirect('login')

Créez également les URL correspondantes dans le fichier auth_app/urls.py :

from django.urls import path
from . import views

urlpatterns = [
    path('signup/', views.signup, name='signup'),
    path('login/', views.login_view, name='login'),
    path('logout/', views.logout_view, name='logout'),
]

Étape 8 : Création des modèles de formulaire

Créez des modèles de formulaire pour l’inscription en utilisant Django Forms dans le fichier auth_app/forms.py. Par exemple :

from django import forms
from django.contrib.auth.forms import UserCreationForm
from .models import CustomUser

class CustomUserCreationForm(UserCreationForm):
    class Meta(UserCreationForm.Meta):
        model = CustomUser
        fields = UserCreationForm.Meta.fields + ('email',) # Ajoutez d'autres champs personnalisés si nécessaire

Étape 9 : Création des templates HTML

Créez des templates HTML pour les vues d’inscription, de connexion et de déconnexion dans le répertoire auth_app/templates. Par exemple, signup.html :

{% extends 'base.html' %}

{% block content %}
  <h2>Inscription</h2>
  <form method="post">
    {% csrf_token %}
    {{ form.as_p }}
    <button type="submit">Inscription</button>
  </form>
{% endblock %}

Étape 10 : Configuration des URLs du projet

Dans le fichier auth_project/urls.py, incluez les URLs de l’application d’authentification :

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('auth_app.urls')),
]

Étape 11 : Exécution de l’application

Exécutez votre application Django en utilisant la commande suivante :

python manage.py runserver

Vous pouvez maintenant accéder à votre application de gestion d’authentification à l’adresse http://127.0.0.1:8000/. Vous pourrez vous inscrire, vous connecter et vous déconnecter.

Ce tutoriel vous a montré comment créer une application de gestion d’authentification avec Django, y compris la création d’un modèle utilisateur personnalisé, la configuration de vues et d’URL, la création de modèles de formulaire, et la gestion des templates HTML. Vous pouvez ensuite personnaliser et étendre cette application en fonction de vos besoins spécifiques.

107 commentaires