Dev Container template · Python

A Flask workspace that just runs.

Python 3.14, debugging preconfigured and nothing to install on your machine besides Docker. Open the folder in VS Code, accept the container, press F5.

  • Python 3.14
  • Flask 3.x
  • Dev Containers
  • MIT

Use this template View on GitHub

Why use this template

Zero local setup, debugger ready.

  • Zero local setup

    Python, pip and the dependencies live inside the container. Only Docker is required.

  • Python 3.14 + extensions

    Pylance, Ruff, Black, pylint, pytest and debugpy are already installed.

  • Debug ready

    Press F5 and the app starts on port 40000 with breakpoints enabled.

  • Predictable time zone

    America/Sao_Paulo is set for reproducible dates in logs and reports.

  • Concurrency examples

    The same download workload in sequential, threaded, httpx async and aiohttp async versions.

  • Small, honest sample

    A minimal Flask app and a requirements file. No opinionated structure to undo before adding yours.

Quick start

Four steps, no local Python install.

1. Click "Use this template" → "Create a new repository"
2. Clone your new repository and open the folder in VS Code
3. Accept "Reopen in Container" when prompted
4. Press F5 and open http://127.0.0.1:40000

Requirements: Docker running, VS Code and the Dev Containers extension. To use it without creating a repository: git clone https://github.com/thepaneb/base_flask.git.

.
├── .devcontainer/devcontainer.json   # Python 3.14 image, extensions, port 40000
├── .vscode/
│   ├── extensions.json               # recommends the Dev Containers extension
│   └── launch.json                   # "Flask Debugger" (debugpy)
├── app/
│   ├── __init__.py                   # Flask app and the sample route
│   ├── requirements.txt              # Flask + requests
│   ├── sync.py                       # sequential I/O
│   ├── thread.py                     # threaded I/O
│   ├── httpx.py                      # async I/O with httpx
│   └── aiohttp.py                    # async I/O with aiohttp
├── dev/dependencies.sh               # upgrades pip and installs requirements
└── base_flask.code-workspace

Good to know

ActionHow
Start with the debuggerF5 → Flask Debugger
URLhttp://127.0.0.1:40000
Reinstall dependenciesbash dev/dependencies.sh
Add async examplesAdd httpx / aiohttp and rerun the script

The launch profile uses --no-debugger --no-reload on purpose: Flask's own debugger and reloader conflict with debugpy breakpoints.