Bienvenue sur IndexError.

Ici vous pouvez poser des questions sur Python et le Framework Django.

Mais aussi sur les technos front comme React, Angular, Typescript et Javascript en général.

Consultez la FAQ pour améliorer vos chances d'avoir des réponses à vos questions.

Variables d'environnement pour switcher [python+flask]

0 votes

Comment fait-on pour gérer des environnements de dev et de prod ?, en python (accessoirement en Flask car cela existe un peu).
Par exemple, changer une variable, un env, ou autre pour basculer facilement de dev en prod et vice-versa.
Genre ce que fait un peu Flask :

class Config(object):
    DEBUG = False
    TESTING = False
    DATABASE_URI = 'sqlite://:memory:'

class ProductionConfig(Config):
    DATABASE_URI = 'mysql://user@localhost/foo'

class DevelopmentConfig(Config):
    DEBUG = True

class TestingConfig(Config):
    TESTING = True

To enable such a config you just have to call into from_object():

app.config.from_object('configmodule.ProductionConfig')
demandé 27-Oct par James
edité 27-Oct par max

1 Réponse

0 votes

Tu peux utiliser le mapping os.environ, qui te permet d'accéder aux variables d'environnement de ton processus.

Tu peux alors créer des fichiers sh qui contiennent tes constantes :

#!/usr/bin/env sh
export DATABASE_URI='mysql://user@localhost/foo'

et dans ton code:

import os
DATABASE_URI = os.environ.get('DATABASE_URI',  'sqlite://:memory:')

Si le ficher d'env est chargé, la variable DATABASE_URI est chargée depuis celui-ci, sinon c'est la valeur dans le fichier python.

Courage !

répondu 29-Oct par frague (484 points)

Salut,
Merci, je vais tester çà dès la semaine prochaine :)

a+

...