187 votes

Django : Comment gérer les paramètres de développement et de production ?

J'ai développé une application de base. Maintenant, au stade du déploiement, il est devenu clair que j'ai besoin de paramètres locaux et de paramètres de production.

Il serait bon de connaître les éléments suivants :

  • Comment gérer au mieux les paramètres de développement et de production.
  • Comment garder des applications telles que django-debug-toolbar uniquement dans un environnement de développement.
  • Tout autre conseil et meilleure pratique pour les paramètres de développement et de déploiement.

1 votes

0voto

ming Points 79

Je crée un fichier nommé "production" dans le répertoire de travail en production.

#settings.py
production = Path("production")
DEBUG = False

#if it's dev mode
if not production.is_file():
    INSTALLED_APPS +=[
       #apps_in_development_mode,
       #...
    ]
    DEBUG = True
    #other settings to override the default production settings

0voto

user7275233 Points 5

Vous allez probablement utiliser le fichier wsgi.py pour la production (ce fichier est créé automatiquement lorsque vous créez le projet django). Ce fichier pointe vers un fichier de configuration. Créez donc un fichier de paramètres de production distinct et faites-y référence dans votre fichier wsgi.py.

0voto

Yandiro Points 20

Ce que nous faisons ici est d'avoir un fichier .ENV pour chaque environnement. Ce fichier contient un grand nombre de variables comme ENV=development

Le fichier settings.py est essentiellement un tas de os.environ.get(), comme ENV = os.environ.get('ENV')

Donc quand vous avez besoin d'y accéder, vous pouvez faire ENV = settings.ENV .

Vous devez avoir un fichier .env pour votre production, vos tests et votre développement.

-2voto

Sam Points 777

Voici ma solution, avec des environnements différents pour dev, test et prod.

import socket

[...]

DEV_PC = 'PC059'
host_name = socket.gethostname()

if host_name == DEV_PC:
   #do something
   pass
elif [...]

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X