This is my guide for web-app backend development, based on selected courses from:
- the Meta Back-End Developer Professional Certificate specialization on Coursera (focusing on Django),
- and the Backend Developer with Python nanodegree on Udacity (focusing on Flask and SQLAlchemy).
From these specializations, I have selected the following topics/courses:
- Introduction to Back-End Development
- Introduction to Databases for Back-End Development
- Django Web Framework
- APIs
- The Full Stack
- Flask SQLAlchemy Data Modelling
- Software Architecture Patterns
- Implement NGINX Web Servers and Reverse Proxy Solutions
Strong Python and Git/Version Control skills are required for these courses.
Each of the topics/courses has its own sub-folder with the relevant materials, including notes, setup information, code snippets, and exercises.
Check also my following guides on related topics:
- Web-App Front-End Development Guide
- Web-App Deployment Guide
- DevOps and Software Engineering Guide
- Flask Guide
Each subdirectory may contain its own setup instructions. If you need a generic Python environment, you can use the following recipe based on uv:
# Create a virtual environment with the correct Python version uv venv --python 3.11 # Install the dependencies from pyproject.toml/uv.lock uv lock uv sync # Activate the virtual environment # Windows PowerShell .venv\Scripts\Activate.ps1 # macOS/Linux source .venv/bin/activate # Start running commands in the environment uv run python path/to/script.py uv run pytest # To update the submodules, run the following command: git submodule update --init --recursive
Common uv usage commands:
# Add a dependency to pyproject.toml, update the lockfile, and install it uv add <package> # Remove a dependency from the project uv remove <package> # Refresh uv.lock without installing packages uv lock # Create/Sync the virtual environment with pyproject.toml and uv.lock uv sync # Run a command inside the project environment uv run <command>
The environment variables are stored in the .env file, which is ignored by git. You can create a .env file with the necessary environment variables for your setup.
Mikel Sagardia, 2026.
No guarantees.