Python: Omgaan met omgevingsvariabelen

Deze documentatie maakt deel uit van de Een REST API maken-gids. Bekijk de volledige gids hier: Stapsgewijze handleiding voor het bouwen van een REST API met Flask in Python.

👋 Welkom bij de Stackhero-documentatie!

Stackhero biedt een kant-en-klare Python cloud oplossing die uw deploymentproces vereenvoudigt:

  • Deploy uw applicatie naar productie in enkele seconden met een simpele git push.
  • Gebruik uw eigen domeinnaam, met automatische HTTPS-certificaatconfiguratie voor veilige verbindingen die volledig voor u geregeld worden.
  • Profiteer van automatische back-ups, one-click updates en voorspelbare prijzen, zodat u zich kunt richten op uw code en niet op infrastructuurbeheer.
  • Geniet van uitstekende performance en security op een private, dedicated infrastructuur. Uw omgeving is geïsoleerd en beveiligd.

Bespaar tijd en vereenvoudig uw workflow: uw code draait binnen 5 minuten op Stackhero's Python cloud hosting.

Omgevingsvariabelen helpen u om gevoelige gegevens zoals databasewachtwoorden of API-sleutels te beschermen. Door ze te gebruiken, houdt u gevoelige data buiten uw codebase en Git-geschiedenis, en kunt u eenvoudig verschillende instellingen per omgeving toepassen.

Voor het beheren van omgevingsvariabelen kunt u de module python-dotenv gebruiken. Als u deze eerder niet heeft geïnstalleerd, kunt u dat nu alsnog doen:

pip install python-dotenv
pip freeze > requirements.txt

Maak een .env bestand aan in de hoofdmap van uw project en voeg uw ontwikkelomgevingsvariabelen toe:

ENV="development"
DATABASE_PASSWORD="secretPassword"
THIRD_API_PRIVATE_KEY="secretKey"

Voeg .env toe aan uw .gitignore zodat dit bestand niet in Git wordt opgenomen:

echo ".env" >> .gitignore

U kunt deze variabelen in Python benaderen met os.environ.get():

import os

print(os.environ.get('ENV'))

Het .env bestand is alleen bedoeld voor ontwikkeling. Voor productie of staging kunt u omgevingsvariabelen direct instellen in uw Stackhero dashboard bij de configuratie van uw Python-service.