Környezeti változók beállítása és lekérdezése Pythonban

A környezeti változók beállításához és lekérdezéséhez Pythonban egyszerűen használhatjuk a os modult:

import os# Set environment variablesos.environ = 'username'os.environ = 'secret'# Get environment variablesUSER = os.getenv('API_USER')PASSWORD = os.environ.get('API_PASSWORD')# Getting non-existent keysFOO = os.getenv('FOO') # NoneBAR = os.environ.get('BAR') # NoneBAZ = os.environ # KeyError: key does not exist.

Megjegyezzük, hogy a getenv() vagy a get() módszer használata egy szótári kulcson None ad vissza, ha a kulcs nem létezik. A BAZ példában azonban, ha olyan kulcsra hivatkozunk egy szótárban, amely nem létezik, az KeyError-t fog kiírni.

A környezeti változók hasznosak, ha el akarjuk kerülni a hozzáférési hitelesítő adatok vagy más változók kemény kódolását a kódba. Például előfordulhat, hogy az e-mail értesítések küldéséhez át kell adnia egy e-mail szolgáltató API hitelesítő adatait, de nem szeretné, ha ezek a hitelesítő adatok a kódtárolóban tárolódnának. Vagy talán arra van szüksége, hogy a kódja kissé eltérően működjön a fejlesztési, a staging és a termelési környezetek között. Ebben az esetben átadhat egy környezeti változót, amely megmondja az alkalmazásnak, hogy milyen környezetben fut. Ezek a környezeti változók tipikus felhasználási esetei.

Lokális env-változók tárolása

A Python kódot úgy kell megírnia, hogy az képes legyen elérni a környezeti változókat bármilyen környezetből, amelyben fut. Ez lehet akár a helyi virtuális környezeted, amelyet fejlesztésre használsz, akár egy olyan szolgáltatás, amelyen hosztolod. Egy hasznos csomag, amely leegyszerűsíti ezt a folyamatot, a Python Decouple, ezt így használhatod.

Először telepítsd a Python Decouple-t a helyi Python környezetedbe.

$ pip install python-decouple

A telepítés után hozzon létre egy .env fájlt a projekt gyökerében, amit aztán megnyithat a környezeti változók hozzáadásához.

$ touch .env # create a new .env file$ nano .env # open the .env file in the nano text editor

Ezután a következőképpen adhatja hozzá a környezeti változókat:

USER=alexKEY=hfy92kadHgkk29fahjsu3j922v9sjwaucahf

Ezután mentse (WriteOut) a fájlt és lépjen ki a nano-ból. A környezeti változók most már a .env fájlban vannak tárolva. Ha git-et használsz, ne felejtsd el hozzáadni a .env-ot a .gitignore fájlodhoz, hogy ezt a titkokat tartalmazó fájlt ne küldd át a kódtáradba.

Most, hogy a környezeti változókat egy .env fájlban tároltad, a Python kódodban így érheted el őket:

from decouple import configAPI_USERNAME = config('USER')API_KEY = config('KEY')

A fenti megközelítéshez hasonló megközelítés használatának előnye, hogy amikor az alkalmazásodat egy felhőszolgáltatásba telepíted, a környezeti változókat bármilyen módszerrel vagy interfésszel beállíthatod a szolgáltatónál, és a Python kódodnak továbbra is képesnek kell lennie elérni azokat. Vegye figyelembe, hogy általános szokás a globális konstansok nevének nagybetűs írása a kódban.

A legtöbb felhőszolgáltató rendelkezik CLI-vel vagy webes felülettel, amellyel beállíthatja a környezeti változókat a staging vagy a termelési környezethez. Ezekben az esetekben a dokumentációjukban talál útmutatást a környezeti változók beállításához a szolgáltatásuk használatakor.

Join the Able Developer Network

Ha tetszett ez a bejegyzés, akkor talán érdekelheti az Able fejlesztői hálózat, egy új hely a fejlesztők számára, ahol blogolhatnak és munkát találhatnak.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.