๐ Python Environment Variables โ Managing Config Safely
Never hardcode secrets in Python code. Environment variables and .env files keep API keys, passwords, and configs out of source code.
Add .env to your .gitignore FIRST, before adding any secrets โ a leaked key can never be truly revoked.
๐ป Code Example:
# โโ Method 1: os.environ โโโโโโโโโโโโโโโโโโโโโโโ import os # Read env variable (raises KeyError if missing) db_url = os.environ['DATABASE_URL'] # Safe read with default secret_key = os.environ.get('SECRET_KEY', 'dev-fallback-key') # โโ Method 2: python-dotenv (recommended!) โโโโโโ # Install: pip install python-dotenv from dotenv import load_dotenv load_dotenv() # Reads .env file from current directory # .env file contents (NEVER commit to git!): # PYNFINITY_SECRET=abc123xyz # DB_URL=sqlite:///pynfinity.db # RAZORPAY_KEY=rzp_live_santoshtvk123 pynfinity_secret = os.getenv('PYNFINITY_SECRET') db_url = os.getenv('DB_URL', 'sqlite:///default.db') razorpay_key = os.getenv('RAZORPAY_KEY') print(f"DB: {db_url}") print(f"Secret loaded: {'Yes' if pynfinity_secret else 'No'}") # โโ In Flask (common pattern) โโโโโโโโโโโโโโโโโโโ # from flask import Flask # from dotenv import load_dotenv # load_dotenv() # app = Flask(__name__) # app.config['SECRET_KEY'] = os.environ['SECRET_KEY']
| Concept | Key Takeaway |
|---|---|
| os.environ['KEY'] | Strict access โ crashes if missing |
| os.getenv('KEY', 'default') | Safe access with fallback value |
| python-dotenv | Loads .env files โ pip install python-dotenv |
| .env in .gitignore | CRITICAL โ always ignore .env from version control |
Keep exploring and happy coding! ๐