2

私はフラスコを使ってアプリケーションを開発しましたが、生産のために公開したいと思いますが、生産と開発の環境(データベースとコード)の分離方法、私を助けたり、コードを書くことができます。 config.pyファイルで2つの環境を指定していますが、どうすればよいか分かりません。フラスコの生産と開発のモード

class DevelopmentConfig(Config): 
    """ 
    Development configurations 
    """ 
    DEBUG = True 
    SQLALCHEMY_ECHO = True 
    ASSETS_DEBUG = True 
    DATABASE = 'teamprojet_db' 
    print('THIS APP IS IN DEBUG MODE. YOU SHOULD NOT SEE THIS IN PRODUCTION.') 


class ProductionConfig(Config): 
    """ 
    Production configurations 
    """ 
    DEBUG = False 
    DATABASE = 'teamprojet_prod_db' 

答えて

4

慣例の1つとして、アプリケーションを起動する前に環境変数を指定する方法があります。あなたのアプリで

$ ENV=prod; python run.py 

については

は、あなたが使用する設定を決定するためにその環境変数の値を確認してください。あなたのケースでは:

run.py

import os 
if os.environ['ENV'] == 'prod': 
    config = ProductionConfig() 
else: 
    config = DevelopmentConfig() 

また

print('THIS APP IS IN DEBUG MODE. YOU SHOULD NOT SEE THIS IN PRODUCTION.') 

プリントインタプリタが前にクラス定義内のすべてのコードを実行するので、あなたが設定ENVどんなに声明ことは注目に値します残りのスクリプトを実行します。ダニエルの答えに追加するには

+0

とあなたのコンフィギュレーションをロードし、私は実行する前に、環境を指定しますが、私が望むのは私がdevで修正するときです。環境(たとえそれが2つの異なるディレクトリであるかのように)私のサーバを再起動しても、私はこのプロダクトに触れたくない。 –

関連する問題