質問自体に対する回答
強いて上げるとすれば、「Feature Support」というセクションにある以下の説明が該当するかな?と思います。
Fill os.environ with .env file variables
※雑な翻訳: os.environ
に .env
ファイルの中身を詰める
これを「read_env
などで読み込む前からos.environ
相当にEnvからアクセスできる」と考えれば、一応理屈に合うかなと思います。
補足: コードとしての実態
以下は、実際にdjango-environ
の挙動を今回の質問に関する部分に絞って追ったものです。
django-environ
のような単機能ライブラリだと、ソースを読むのも一つの手かなと思うので、
ドキュメントの記載確認をする以外の選択肢として捉えてもらえれば。
django-environのEnvクラス
django-environ
のEnv
クラスはここで定義されています。
※以下、ソースから回答としてピックアップする主要な箇所のみを抜粋
python
1import os
2
3## 略
4
5class Env(object):
6 ## 略
7 ENVIRON = os.environ
8
9 def bool(self, var, default=NOTSET):
10 """
11 :rtype: bool
12 """
13 return self.get_value(var, cast=bool, default=default)
14
15 def get_value(self, var, cast=None, default=NOTSET, parse_default=False):
16 ## 略
17 try:
18 value = self.ENVIRON[var]
19 except KeyError:
20 if default is self.NOTSET:
21 error_msg = "Set the {0} environment variable".format(var)
22 raise ImproperlyConfigured(error_msg)
23
24 value = default
25 ## 略
26 return value
実際の利用における動き
django-environ
で通常取得に使うメソッドは全部get_value
を内部利用しているのですが、
ここで参照しているのはself.ENVIRON
というプロパティです。
このプロパティはクラス変数となっており、Env
クラスの定義を読むタイミングで環境変数の辞書であるos.environ
がセットされています。
そのため、environ.Env()
などのようにインスタンスを生成した時点で、もともとの環境変数を参照可能になっています。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/09 04:22