ローカルで資格情報を保管して、読む3つの方法
8515 ワード
元来realpythonproject.com
接続してください.
我々は、資格情報を格納し、Pythonを使用してそれらを読む3つの異なる方法について議論されます.
それらをシステム変数として格納する
仮想環境 に変数として格納する
に格納する .ENVファイル 最も便利な方法
グローバル環境変数として保存する
資格情報がグローバル環境変数として保存されている場合は、PC上の任意の環境で実行されているスクリプトでアクセスできます.
グローバル環境変数を作成するには
地球環境変数のカップルを作ろう
上記のスクリプトは端末で実行する必要があります.さあ、以前に作成した変数にアクセスしてみましょう.
仮想環境で変数として保存する
これらの環境変数は、変数が作成される仮想環境で実行されるスクリプトにのみアクセスできます.私たちは、それらを「ローカル」環境変数と考えることができます.
まず、我々は、仮想環境を作成する必要があります
Macで
このスクリプトに変数を追加します.したがって、我々の仮想環境を活性化するたびに、環境変数が作成されます.ファイルを開きます.
変数を作成する前に、仮想環境が無効になった後、変数が存在しないことを確認するコードを追加する必要があります.
unsetキーワードを使用して、アクティブスクリプト内の関数deactivate ()に行き、関数の先頭に変数を設定します
今私たちの仮想環境をアクティブにする必要があります.仮想環境をアクティブにした場合は、無効にするキーワードを使用して仮想環境を無効にすることができます
では、仮想環境を活性化しましょう.
Macで
保存します.envファイル
あなたのルートフォルダの中に、あなたの仮想環境を持つフォルダは、“. env .”という名前のファイルを作成しますファイルに変数を追加する
最も便利な方法
私の意見では、最も便利な方法は、それらを内部に格納することです.envファイル.あなたは、プロジェクト にローカルですあなたは、彼らを心配させる必要がありません彼らを あなたが彼らに加えるならば、.gitignoreファイル、それは外の世界 から安全ですスクリプトをserverless関数として展開した場合、azure/AWS環境の設定ファイル内に格納されている環境変数を読み込むために、loadloaddotenve ()を使用する必要があります. 多くのプロを持っていますが、1つの詐欺は我々が内部に変数を持っている時です.グローバル環境変数と同じ名前のENVファイル.Pythonで変数にアクセスすると、変数に値を代入したり変数に新しい値を代入したりするために変数を設定したり、エクスポートしたりしないために“unset”を使用していません.
あなたが他の方法のいずれかを好むならば、あるいは、それらのうちの1つが他方より安全であると思うならば、知らせてください.
接続してください.
我々は、資格情報を格納し、Pythonを使用してそれらを読む3つの異なる方法について議論されます.
それらをシステム変数として格納する
仮想環境
に格納する
グローバル環境変数として保存する
資格情報がグローバル環境変数として保存されている場合は、PC上の任意の環境で実行されているスクリプトでアクセスできます.
グローバル環境変数を作成するには
export varName=varValue
の間に空白がないことを確認してください.「zsh :悪い代入」というエラーが発生した場合は、'='の間にスペースがあるためでしょう.地球環境変数のカップルを作ろう
export globalSecretUser=global_rahul1999
export globalSecretKey = global_xy76hUihk
Windowsでは、「エクスポート」の代わりに「set」を使わなければならないかもしれません上記のスクリプトは端末で実行する必要があります.さあ、以前に作成した変数にアクセスしてみましょう.
import os
print(os.environ)
# This will print a dictionary with
# all the global environment variables
辞書アクセスメソッドを使用して環境変数を読み込みます.get ()あるいは[]print(os.environ.get('globalSecretUser'))
print(os.environ.get('globalSecretKey'))
'''
global_rahul1999
global_xy76hUihk
'''
環境変数を更新するには、export globalSecretUser=Updated_rahul1999
再びPythonで変数にアクセスしてみましょうimport os
print(os.environ.get('globalSecretUser'))
'''
Updated_rahul1999
'''
環境変数を削除するには、unsetキーワードを使用しますunset globalSecretUser
Pythonで変数にアクセスしようとすると、辞書内の値にアクセスするために使用するメソッドに応じてkeyErrorまたはNoneを取得します.仮想環境で変数として保存する
これらの環境変数は、変数が作成される仮想環境で実行されるスクリプトにのみアクセスできます.私たちは、それらを「ローカル」環境変数と考えることができます.
まず、我々は、仮想環境を作成する必要があります
Macで
python3 -m venv venv
Windowsでpython -m venv venv
これは現在のディレクトリに仮想環境を作成します.「binフォルダ」の内部でアクティブにするファイルがあるはずです.Windowsでは、スクリプトフォルダ内にある必要があります.このスクリプトに変数を追加します.したがって、我々の仮想環境を活性化するたびに、環境変数が作成されます.ファイルを開きます.
変数を作成する前に、仮想環境が無効になった後、変数が存在しないことを確認するコードを追加する必要があります.
unsetキーワードを使用して、アクティブスクリプト内の関数deactivate ()に行き、関数の先頭に変数を設定します
deactivate () {
unset localSecretUser
unset localSecretKey
# Some Code
}
さて、エクスポートキーワードを使用して変数を定義します.このコードは、アクティブスクリプトの最後に無効化機能の外部に移動しますdeactivate(){
# Some Code
}
# Some More Code
export localSecretUser=local_secret_rahul199
export localSecretKey=local_secret_xyudJIk12AA
Windowsでは、「エクスポート」の代わりに「set」を使わなければならないかもしれません今私たちの仮想環境をアクティブにする必要があります.仮想環境をアクティブにした場合は、無効にするキーワードを使用して仮想環境を無効にすることができます
deactivate
上記の型を端末に入力します.では、仮想環境を活性化しましょう.
Macで
source venv/bin/activate
Windowsでvenv/Scripts/activate
端末の次のコマンドを使用して、現在の環境変数を一覧表示できますprintenv
では、作成した変数にアクセスしてみましょう.グローバル環境変数にアクセスする方法と似ていますimport os
print(os.environ.get('localSecretUser'))
print(os.environ.get('localSecretKey'))
'''
local_secret_rahul199
local_secret_xyudJIk12AA
'''
では、仮想環境を無効にし、再びPythonスクリプトを実行してみましょうdeactivate
python3 main.py
Noneを返します.保存します.envファイル
あなたのルートフォルダの中に、あなたの仮想環境を持つフォルダは、“. env .”という名前のファイルを作成しますファイルに変数を追加する
#inside file named .env
secretUser = "secret_user_rahul1999"
secretKey = "secret_key_adfdsaUj12"
変数を読み込むためにPythonライブラリをインストールする必要がありますpip3 install python-dotenv
Pythonで変数を読みましょうfrom dotenv import load_dotenv
import os
load_dotenv()
print(os.environ.get('secretUser'))
print(os.environ.get('secretKey'))
'''
secret_user_rahul1999
secret_key_adfdsaUj12
'''
を忘れないでください.あなたの中のenvファイル.gitignoreファイル.これはあなたの資格情報があなたのGitリポジトリにプッシュされないことを保証します.# Inside .gitignore
.env
最も便利な方法
私の意見では、最も便利な方法は、それらを内部に格納することです.envファイル.
あなたが他の方法のいずれかを好むならば、あるいは、それらのうちの1つが他方より安全であると思うならば、知らせてください.
Reference
この問題について(ローカルで資格情報を保管して、読む3つの方法), 我々は、より多くの情報をここで見つけました https://dev.to/rahulbanerjee99/3-ways-to-store-and-read-credentials-locally-in-python-373dテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol