← Python
Python: Libraries and tooling
Building blocks used in Python projects: templating, data access, tests, build and operations.
Django extensions
- Django REST framework REST APIs for Django
- Django Ninja FastAPI-style APIs on Django
- Django Channels WebSockets and asynchronous protocols
- django-allauth Login, registration, social logins
- django-htmx Dynamic pages without an SPA
- Django Debug Toolbar Queries and performance at a glance
Database and ORM
- SQLAlchemy The comprehensive ORM and SQL toolkit
- Django ORM Built-in ORM with migrations
- SQLModel Pydantic and SQLAlchemy combined
- Alembic Migrations for SQLAlchemy
- Tortoise ORM Asynchronous ORM
- Peewee Small, simple ORM
- psycopg / asyncpg PostgreSQL drivers
- redis-py Redis client
Validation, APIs and background jobs
- Pydantic Data validation through type annotations
- Marshmallow Serialisation and validation
- Strawberry GraphQL with type annotations
- HTTPX / Requests HTTP clients
- Celery Distributed task queue
- Dramatiq / RQ Simpler background jobs
- APScheduler Scheduled tasks
- Uvicorn / Gunicorn Application servers for ASGI and WSGI
- Jinja Template engine
AI and data
- Anthropic SDK / OpenAI SDK Connecting language models
- LangChain / LangGraph LLM applications and agents
- LlamaIndex RAG over your own documents
- Hugging Face Transformers Pre-trained models
- PyTorch Deep learning
- scikit-learn Classical machine learning
- pandas / Polars Tabular data
- NumPy Numerics
Testing and tooling
- pytest The standard test framework
- Hypothesis Property-based tests
- Playwright Browser tests
- Locust Load testing
- mypy / pyright Static type checking
- Ruff Linter and formatter, replaces flake8, isort, Black
- uv Fast package and project management
- Poetry Dependencies and packaging
- pre-commit Checks before every commit
- Bandit Security checks
More on Python
A project with Python?
New development, replacement or extending an existing system: tell us briefly what it is about. We will tell you what works in practice.