Découvrez comment activer efficacement le mode maintenance sur votre application Django tout en garantissant une expérience fluide à vos utilisateurs.

Mettre votre application Django en mode maintenance est crucial lorsque vous effectuez des mises à jour, résolvez des problèmes techniques ou apportez des modifications importantes à votre application.

En restreignant temporairement l'accès des utilisateurs et en affichant une page de maintenance, vous pouvez communiquer des messages importants, assurer un processus de mise à jour fluide et éviter les conflits potentiels ou la perte de données.

Que vous soyez développeur ou administrateur système, comprendre comment implémenter le mode maintenance dans Django vous permettra de maintenir une application fiable et conviviale.

Comment utiliser le package Django-Maintenance-Mode

Grâce à son support communautaire étendu, Django propose une large gamme de packages qui peuvent considérablement améliorer votre processus de développement, permettant un travail plus rapide et plus efficace. Ces packages allègent le fardeau des tâches répétitives, garantissant une expérience plus fluide pour vous en tant que développeur.

instagram viewer

L'un des packages fournis par Django est le django-maintenance-mode package que vous pouvez utiliser pour mettre votre application Django en mode maintenance. Le django-maintenance-mode package fonctionne en affichant une page pour le 503Code d'état HTTP. Vous pouvez utiliser django-maintenance-mode dans votre application en suivant les étapes suivantes.

Étape 1: Installez Django-Maintenance-Mode dans votre environnement virtuel

  1. Dans ton environnement virtuel du projet, installez le package avec le gestionnaire de packages pip de Python. Exécutez cette commande dans votre interface de ligne de commande (CLI):
    pip install django-maintenance-mode
  2. Après avoir installé le package, ajoutez Mode de Maintenance au INSTALLED_APPS liste dans votre paramètres.py déposer:
    INSTALLED_APPS = [
    # quelques autres applications,
    'Mode de Maintenance',
    ]
  3. Ensuite, ajoutez le middleware pour django-maintenance-mode au INTERMÉDIAIRES liste dans votre paramètres.py déposer:
    INTERMEDIAIRE = [
    # un autre middleware de django,
    'maintenance_mode.middleware. MaintenanceModeMiddleware',
    ]

Étape 2: créer un modèle HTML pour afficher le message du mode de maintenance

Pour le django-maintenance-mode package pour afficher une page d'erreur 503, il recherche un 503.html fichier de modèle dans le modèles annuaire. Pour le configurer, procédez comme suit :

  1. Créez un dossier nommé modèles dans votre répertoire racine.
  2. Ouvrez votre nouveau modèles dossier et créer un fichier appelé 503.html.
  3. Dans ton paramètres.py fichier, localisez le MODÈLES paramètres et configurer le DIRS listez-le comme ceci:
    'DIRS': [REP_BASE/'modèles'],
  4. Ouvrez votre 503.html fichier et écrivez le code HTML pour afficher un message d'erreur à vos utilisateurs. Voici un code simple que vous pouvez utiliser :
    html>
    <html>
    <diriger>
    <métajeu de caractères="UTF-8">
    <titre>503 Service Indisponibletitre>
    <style>
    corps {
    famille de polices: Arial, sans empattement ;
    couleur de fond: #f5f5f5 ;
    marge: 0 ;
    rembourrage: 0 ;
    }

    .container-503 {
    largeur maximale: 600px ;
    marge: 100 pixels automatique ;
    aligner le texte: centrer ;
    }

    h1 {
    taille de police: 48px ;
    couleur: #333333 ;
    marge inférieure: 20px ;
    }

    p {
    taille de police: 18 px ;
    couleur: #666666 ;
    marge inférieure: 30px ;
    }

    .btn-503 {
    affichage: bloc en ligne ;
    rembourrage: 12px 24px ;
    couleur de fond: #007bff ;
    couleur: #ffffff ;
    décoration de texte: aucune ;
    rayon de bordure: 4 px ;
    taille de police: 18 px ;
    }
    style>
    diriger>
    <corps>
    <divclasse = "conteneur-503">
    <h1>503 Service Indisponibleh1>
    <p>
    Oops! Nous travaillons actuellement sur quelques mises à jour.
    Nous nous excusons pour la gêne occasionnée et apprécions votre patience.
    p>
    <p>Veuillez visiter le site Web plus tard ou contacter notre équipe d'assistancep>
    <unhref = "mailto: [email protected]"classe = "btn-503">
    Contactez le support
    un>
    div>
    corps>
    html>

Étape 3: activez le mode de maintenance et redémarrez votre serveur

Dans ton paramètres.py fichier, ajoutez ce code pour activer le mode maintenance :

MAINTENANCE_MODE = Vrai

Redémarrez votre serveur de développement en exécutant ceci dans votre CLI :

serveur d'exécution python manage.py

Lorsque vous naviguez sur votre site Web, vous devriez voir la page de maintenance que vous avez créée.

Comment ignorer le site d'administration en mode maintenance de Django

Pour permettre à votre site d'administration de continuer à fonctionner même en mode maintenance, le django-maintenance-mode fournit un paramètre appelé MAINTENANCE_MODE_IGNORE_ADMIN_SITE. Vous devez ajouter ce paramètre dans votre paramètres.py fichier et réglez-le sur Vrai:

MAINTENANCE_MODE_IGNORE_ADMIN_SITE = Vrai

La valeur par défaut du paramètre ci-dessus est FAUX; par conséquent, votre site d'administration sera affecté par la page du mode de maintenance si vous ne la définissez pas sur Vrai.

Comment ignorer une vue basée sur une fonction spécifique en mode maintenance Django

Le django-maintenance-mode package fournit un décorateur pour empêcher une certaine vue ou page, comme le À propos page de votre site — de passer en mode maintenance. Pour ce faire, importez d'abord le décorateur dans votre vues.py module:

depuis maintenance_mode.decorators importer force_maintenance_mode_off

Après avoir importé le décorateur, ajoutez-le à votre vue comme ceci :

@force_maintenance_mode_off
définitivementnom_vue(demande):
# exécuter la logique de vue
# ne renvoie jamais la réponse 503

Après avoir correctement implémenté le décorateur, l'URL de cette vue spécifique deviendra accessible à vos utilisateurs.

Comment ignorer une vue basée sur une classe spécifique en mode maintenance Django

Ignorer une vue basée sur les classes revient à ignorer une vue basée sur les fonctions. Cependant, la meilleure approche est de le faire dans le urls.py déposer.

Tout d'abord, vous devez importer le force_maintenance_mode_off décorateur dans votre application urls.py déposer. Ensuite, vous devez l'inclure dans votre chemin d'URL. Voici un exemple :

depuis maintenance_mode.decorators importer force_maintenance_mode_off
depuis .vues importer Ta vue

modèles d'url = [
# ne renvoie jamais la réponse 503
chemin('', force_maintenance_mode_off (YourView.as_view()), nom='mon avis'),
]

Assurez-vous d'importer également d'autres choses nécessaires comme chemin et votre vue basée sur les classes.

Comment activer le mode de maintenance pour une vue basée sur une fonction spécifique

  1. Pour activer le mode de maintenance pour une seule vue, commencez par désactiver le mode de maintenance dans votre paramètres.py fichier en faisant ceci:
    MAINTENANCE_MODE = FAUX
  2. Ensuite, dans votre vues.py, vous devez importer le force_maintenance_mode_on décorateur et ajoutez-le à votre vue :
    depuis maintenance_mode.decorators importer force_maintenance_mode_on

    @force_maintenance_mode_on
    définitivementnom_vue(demande):
    # Exécuter la logique de vue
    # Renvoie toujours la réponse 503

Comment activer le mode de maintenance pour une vue spécifique basée sur les classes

  1. Tout d'abord, vous devez désactiver le mode de maintenance dans votre paramètres.py déposer:
    MAINTENANCE_MODE = FAUX
  2. Ensuite, dans votre urls.py, vous devez importer le force_maintenance_mode_on décorateur et ajoutez-le au chemin d'URL requis :
    depuis maintenance_mode.decorators importer force_maintenance_mode_on
    depuis .vues importer Ta vue

    modèles d'url = [
    # Renvoie toujours la réponse 503
    chemin('', force_maintenance_mode_on (YourView.as_view()), nom='mon avis'),
    ]

Comment utiliser un nom de modèle différent pour le mode de maintenance de Django

Par défaut, le django-maintenance-mode le colis recherche un modèles/503.html modèle. Vous pouvez décider de remplacer cela dans le paramètres.py déposer.

Supposons que vous disposiez d'un dossier séparé pour gérer les erreurs dans votre application; vous voudrez inclure votre 503.html modèle dans ce dossier. Ainsi, votre modèle sera dans modèles/erreurs/503.html.

Le paramètre par défaut pour cette configuration est le suivant :

MAINTENANCE_MODE_TEMPLATE = "503.html"

Pour le remplacer, vous devez ajouter un chemin différent pointant vers votre page d'erreur. Voici un exemple :

MAINTENANCE_MODE_TEMPLATE = "erreurs/503.html"

Vous pouvez également modifier le nom du fichier si vous le souhaitez, et tout fonctionnera correctement si vous ajoutez les configurations nécessaires.

En dehors des configurations ci-dessus, le django-maintenance-mode package fournit d'autres configurations intéressantes pour vous aider à personnaliser le mode de maintenance de votre application en fonction de vos besoins spécifiques. Vous pouvez en savoir plus sur ces configurations dans le documentation django-maintenance-mode.

Utilisez le mode de maintenance pour garantir des mises à jour transparentes et une expérience utilisateur améliorée dans votre application

L'utilisation du mode de maintenance dans votre application peut vous faciliter la tâche, à vous et à vos utilisateurs. En désactivant temporairement l'accès à tout ou partie de votre application pendant les mises à jour ou les tâches de maintenance, vous pouvez minimiser les perturbations et les erreurs pouvant survenir lors d'interactions simultanées avec les utilisateurs.

L'utilisation du mode de maintenance vous permettra non seulement d'effectuer efficacement les mises à jour nécessaires, mais démontrera également votre engagement à fournir une expérience fluide et ininterrompue à vos utilisateurs.

Outre le mode de maintenance, vous pouvez également fournir des modèles personnalisés pour d'autres erreurs dans Django.