python-decoupleの概要
この文章は主に以下のように翻訳されています.https://pypi.python.org/pypi/python-decouple/
悪いところがあったら、大神さんに指摘してください.ありがとうございます.
decoupleの概要:
コードからdecoupleを離れると、プログラムプロファイルを解析し、プログラムを再配置することなく設定を変更する効果があります.
decoupleが完成したこと:
1.iniまたは.Envファイルにパラメータを格納
2.デフォルトを定義
3.適切な構成を適切な値に変換
4.あなたのプログラムには設定モジュールが1つしか必要ありません.
decoupleは最初はdjangoのために開発され、その後は独立した汎用ツールとなり、構成をコードから分離した.
なぜdecoupleを使うのですか?
通常、Webフレームワークでは、異なる種類のパラメータが設定されます.
1. 言語環境と国際化
2. ミドルウェアとアプリケーション
3. リソースストレージ関連:データベース、cacheクラス.など
4. 外部サービス証明書:Amazon S 3またはTwitter
5. 事前オンライン環境の設定
最初の2つはプロジェクト全体の設定で、次は配置インスタンスの設定です.
なぜ環境変数を直接使用しないのですか?
環境変数がosを通過することはよく知られています.Environは取得しますが、文字列が返され、難しいです.
例えば、あなたは
個の環境は量DEBUG=Falseを交換して、あなたは次のコードを実行することができるかもしれません
このコードはTruを返します
e,os.Environ['DEBUG']は
文字列「False」は、空ではない文字列であるため、Trueを返します.
Decoupleはこの問題を解決できる解決策を提供します
:config('DEBUG', cast=bool)
Decoupleのインストール:
使用方法:
にある
あなたのpy.ファイルには、次のように書くことができます.
1.configオブジェクトをインポートするには:
2. 構成パラメータの取得
これらのプロファイルはどこに置けばいいですか?
Decoupleは2つのタイプをサポートしています.iniファイルと.Envファイル
INIファイルの例:
settingsを作成する.Iniファイル、次のステップでは、ファイルに次のフォーマットの構成を書き込むことができます.たとえば、次のようにします.
注意:ConfigParserモジュールは文字列の埋め込みをサポートするため、パーセンテージ%は2つのパーセンテージ、すなわち%%で代用する必要があります.
ENVファイルの例:
プログラムのルートディレクトリに作成します.Envファイル、例えば:
私はdjangoでどのように使うべきですか?
もし私がプログラムのルートディレクトリに1つあったら.Envファイル、次は私のsettingです.pyプログラムのセグメントです.次のプログラムは、unipathとdj-database-url(この2つのライブラリは簡単ですが、後で紹介します)を組み合わせて使用することをお勧めします.
注意パラメータは定義されていません:
上記の例では、
このポリシーでは、パラメータの構成を忘れたときに予期せぬ動作が発生します.
次に、環境変数に関連する最も重要なファイルについて説明します.
時には通過したくないことがあります.iniまたは.Envファイルはパラメータを変更し、3.0からdecoupleはunixの方法に従い、環境変数の優先度がプロファイル変数より高い.
プロファイルの変数を上書きできます.
これは何の原理ですか.
Decoupleには5つのクラスがあります. Config プロファイルが存在する場所を取得する .
RepositoryIni は、osから順番に従う.Environ,iniファイルでの読み出し値 注:3.0からunix環境変数はプロファイル変数 より高い.
RepositoryEnv は、osから順番に従う.environ,.Envファイルからの読み出し値 注:3.0からunix環境変数はプロファイル変数 より高い.
RepositoryShell はosからだけです.Environで環境変数を取得する AutoConfig 使用する構成を確認します 構成モジュールパスからsettingsを再帰的に検索します.iniまたは.Envファイル
簡単な例です.
.evnファイル
pyton解析ファイル:
pythonでは、djangoにすぐにアクセスできるオープンソースプロジェクトbootcampを紹介します.
https://github.com/vitorfs/bootcamp
転載先:https://www.cnblogs.com/leeronggui/p/5380050.html
悪いところがあったら、大神さんに指摘してください.ありがとうございます.
decoupleの概要:
コードからdecoupleを離れると、プログラムプロファイルを解析し、プログラムを再配置することなく設定を変更する効果があります.
decoupleが完成したこと:
1.iniまたは.Envファイルにパラメータを格納
2.デフォルトを定義
3.適切な構成を適切な値に変換
4.あなたのプログラムには設定モジュールが1つしか必要ありません.
decoupleは最初はdjangoのために開発され、その後は独立した汎用ツールとなり、構成をコードから分離した.
なぜdecoupleを使うのですか?
通常、Webフレームワークでは、異なる種類のパラメータが設定されます.
1. 言語環境と国際化
2. ミドルウェアとアプリケーション
3. リソースストレージ関連:データベース、cacheクラス.など
4. 外部サービス証明書:Amazon S 3またはTwitter
5. 事前オンライン環境の設定
最初の2つはプロジェクト全体の設定で、次は配置インスタンスの設定です.
なぜ環境変数を直接使用しないのですか?
環境変数がosを通過することはよく知られています.Environは取得しますが、文字列が返され、難しいです.
例えば、あなたは
個の環境は量DEBUG=Falseを交換して、あなたは次のコードを実行することができるかもしれません
このコードはTruを返します
e,os.Environ['DEBUG']は
文字列「False」は、空ではない文字列であるため、Trueを返します.
Decoupleはこの問題を解決できる解決策を提供します
:config('DEBUG', cast=bool)
if os.environ['DEBUG']:
print True
else:
print False
Decoupleのインストール:
pip install python-decouple
使用方法:
にある
あなたのpy.ファイルには、次のように書くことができます.
1.configオブジェクトをインポートするには:
from decouple import config
2. 構成パラメータの取得
SECRET_KEY = config('SECRET_KEY')
DEBUG = config('DEBUG', default=False, cast=bool)
EMAIL_HOST = config('EMAIL_HOST', default='localhost')
EMAIL_PORT = config('EMAIL_PORT', default=25, cast=int)
これらのプロファイルはどこに置けばいいですか?
Decoupleは2つのタイプをサポートしています.iniファイルと.Envファイル
INIファイルの例:
settingsを作成する.Iniファイル、次のステップでは、ファイルに次のフォーマットの構成を書き込むことができます.たとえば、次のようにします.
[settings]
DEBUG=True
TEMPLATE_DEBUG=%(DEBUG)s
SECRET_KEY=ARANDOMSECRETKEY
DATABASE_URL=mysql://myuser:mypassword@myhost/mydatabase
PERCENTILE=90%%
#COMMENTED=42
注意:ConfigParserモジュールは文字列の埋め込みをサポートするため、パーセンテージ%は2つのパーセンテージ、すなわち%%で代用する必要があります.
ENVファイルの例:
プログラムのルートディレクトリに作成します.Envファイル、例えば:
DEBUG=True
TEMPLATE_DEBUG=True
SECRET_KEY=ARANDOMSECRETKEY
DATABASE_URL=mysql://myuser:mypassword@myhost/mydatabase
PERCENTILE=90%
#COMMENTED=42
私はdjangoでどのように使うべきですか?
もし私がプログラムのルートディレクトリに1つあったら.Envファイル、次は私のsettingです.pyプログラムのセグメントです.次のプログラムは、unipathとdj-database-url(この2つのライブラリは簡単ですが、後で紹介します)を組み合わせて使用することをお勧めします.
# coding: utf-8
from decouple import config
from unipath import Path
from dj_database_url import parse as db_url
BASE_DIR = Path(__file__).parent
DEBUG = config('DEBUG', default=False, cast=bool)
TEMPLATE_DEBUG = DEBUG
DATABASES = {
'default': config(
'DATABASE_URL',
default='sqlite:///' + BASE_DIR.child('db.sqlite3'),
cast=db_url
)
}
TIME_ZONE = 'America/Sao_Paulo'
USE_L10N = True
USE_TZ = True
SECRET_KEY = config('SECRET_KEY')
EMAIL_HOST = config('EMAIL_HOST', default='localhost')
EMAIL_PORT = config('EMAIL_PORT', default=25, cast=int)
EMAIL_HOST_PASSWORD = config('EMAIL_HOST_PASSWORD', default='')
EMAIL_HOST_USER = config('EMAIL_HOST_USER', default='')
EMAIL_USE_TLS = config('EMAIL_USE_TLS', default=False, cast=bool)
# ...
注意パラメータは定義されていません:
上記の例では、
SECRET_KEY = config('SECRET_KEY'), .env
を除いてデフォルトの構成パラメータがあります.'SECRET_KEY'
.Envファイルにはずっとありません.decoupleはUndefinedValueErrorを投げ出します.このポリシーでは、パラメータの構成を忘れたときに予期せぬ動作が発生します.
次に、環境変数に関連する最も重要なファイルについて説明します.
時には通過したくないことがあります.iniまたは.Envファイルはパラメータを変更し、3.0からdecoupleはunixの方法に従い、環境変数の優先度がプロファイル変数より高い.
プロファイルの変数を上書きできます.
DEBUG=True python manage.py
これは何の原理ですか.
Decoupleには5つのクラスがあります.
簡単な例です.
.evnファイル
user_info=root
port=3306
ipadd=127.0.0.1
switch=on
pyton解析ファイル:
import decouple
config = decouple.AutoConfig()
ipadd = config('ipadd')
print ipadd
pythonでは、djangoにすぐにアクセスできるオープンソースプロジェクトbootcampを紹介します.
https://github.com/vitorfs/bootcamp
転載先:https://www.cnblogs.com/leeronggui/p/5380050.html