Hoe omgevingsvariabelen in Python in te stellen en te verkrijgen

Om omgevingsvariabelen in Python in te stellen en te verkrijgen, kunt u gewoon de os module gebruiken:

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.

Merk op dat het gebruik van getenv() of de get() methode op een dictionary key None zal teruggeven als de key niet bestaat. Echter, in het voorbeeld met BAZ, als u verwijst naar een sleutel in een woordenboek dat niet bestaat, zal dit een KeyError opleveren.

Omgevingsvariabelen zijn nuttig wanneer u wilt voorkomen dat toegangscredentials of andere variabelen hard gecodeerd worden in code. Bijvoorbeeld, je moet API referenties voor een email service provider doorgeven om email notificaties te versturen, maar je wil niet dat deze referenties in je code repository worden opgeslagen. Of misschien moet je code net iets anders werken tussen je ontwikkel-, staging- en productie-omgevingen. In dit geval zou je een omgevingsvariabele kunnen doorgeven om je applicatie te vertellen in welke omgeving hij draait. Dit zijn typische gebruikssituaties voor omgevingsvariabelen.

Opslaan van lokale omgevingsvariabelen

U moet uw Python code zo schrijven dat het in staat is om omgevingsvariabelen te benaderen vanuit elke omgeving waarin het draait. Dit kan je lokale virtuele omgeving zijn die je gebruikt voor ontwikkeling of een dienst waar je het op host. Een handig pakket dat dit proces vereenvoudigt is Python Decouple, dit is hoe je het zou gebruiken.

Installeer eerst Python Decouple in je lokale Python-omgeving.

$ pip install python-decouple

Eenmaal geïnstalleerd, maak een .env bestand in de root van uw project dat u vervolgens kunt openen om uw omgevingsvariabelen toe te voegen.

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

U kunt dan uw omgevingsvariabelen als volgt toevoegen:

USER=alexKEY=hfy92kadHgkk29fahjsu3j922v9sjwaucahf

Dan sla (WriteOut) het bestand op en sluit nano af. Je omgevingsvariabelen zijn nu opgeslagen in je .env bestand. Als u git gebruikt, vergeet dan niet om .env toe te voegen aan uw .gitignore bestand, zodat u dit bestand met geheimen niet commit naar uw code repository.

Nu je je omgevingsvariabelen hebt opgeslagen in een .env bestand, kun je ze benaderen in je Python code zoals dit:

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

Het voordeel van het gebruik van iets als de bovenstaande aanpak is dat wanneer je je applicatie inzet bij een cloud service, je je omgevingsvariabelen kunt instellen met behulp van welke methode of interface de provider ook heeft en je Python code zou nog steeds in staat moeten zijn om ze te benaderen. Merk op dat het gebruikelijk is om hoofdletters te gebruiken voor namen van globale constanten in uw code.

De meeste cloud service providers zullen een CLI of webinterface hebben waarmee u de omgevingsvariabelen voor uw staging- of productie-omgevingen kunt configureren. Voor begeleiding in deze gevallen moet u hun documentatie raadplegen over hoe omgevingsvariabelen in te stellen bij het gebruik van hun service.

Toetreden tot het Able Developer Network

Als je dit bericht leuk vond, ben je misschien geïnteresseerd in het Able Developer Network, een nieuwe plek voor ontwikkelaars om te bloggen en banen te vinden.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.