ローカルで資格情報を保管して、読む3つの方法


元来realpythonproject.com
接続してください.
我々は、資格情報を格納し、Pythonを使用してそれらを読む3つの異なる方法について議論されます.
それらをシステム変数として格納する

  • 仮想環境
  • に変数として格納する

  • に格納する
  • .ENVファイル
  • 最も便利な方法
    グローバル環境変数として保存する
    資格情報がグローバル環境変数として保存されている場合は、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ファイル.
  • あなたは、プロジェクト
  • にローカルです
  • あなたは、彼らを心配させる必要がありません彼らを
  • あなたが彼らに加えるならば、
  • .gitignoreファイル、それは外の世界
  • から安全です
  • スクリプトをserverless関数として展開した場合、azure/AWS環境の設定ファイル内に格納されている環境変数を読み込むために、loadloaddotenve ()を使用する必要があります.
  • 多くのプロを持っていますが、1つの詐欺は我々が内部に変数を持っている時です.グローバル環境変数と同じ名前のENVファイル.Pythonで変数にアクセスすると、変数に値を代入したり変数に新しい値を代入したりするために変数を設定したり、エクスポートしたりしないために“unset”を使用していません.
    あなたが他の方法のいずれかを好むならば、あるいは、それらのうちの1つが他方より安全であると思うならば、知らせてください.