Django & FastAPI

Django & FastAPI course — Prowid
Course duration
3 months / 24 lessons
Individual
Per month 200 AZN
Group
Per month 150 AZN
Paying for the full course in a group
15% discount
Installments
50/50
Subscription
from 30 AZN a month
Django and FastAPI are the most popular frameworks for building web applications and APIs in Python. Knowledge of Python is required for this course.

Enrollment for a new group is open — send a request to reserve your seat

Lessons are taught live in Azerbaijani and Russian.

Or study on your own in your personal account → with a subscription from 30 AZN a month

Course Curriculum

Introduction to Django: projects, apps, MVT architecture
URLs, views and templates
Models, Django ORM and migrations
Django Admin
Forms and validation
Authentication and permissions
Static and media files
Django REST Framework: serializers and viewsets
JWT authentication and API documentation
Background tasks: Celery and Redis
Introduction to FastAPI: routes, Pydantic, automatic Swagger documentation
FastAPI: async endpoints and dependency injection
FastAPI + SQLAlchemy + PostgreSQL
Testing: pytest
Deployment: Docker, Gunicorn/Uvicorn, Nginx
Final project: a Django application and a FastAPI service
How do we teach?

Learning stages

01

Webinar

Students join the lesson live. At the end of each lesson, students are sent a video recording of the class.

02

Homework

Every assignment is based on the topic covered in the webinar. Homework helps you reinforce the material and understand it better.

03

Working with a mentor

The teacher stays in touch with the group both during the course and outside class. Any questions get answered right away.

04

Portfolio

During the course you'll complete several projects on different topics — they'll show employers what you can do.

Self-paced learning

The full curriculum in your personal account

140 topics with theory, examples and practice. The first 4 are free, the rest come with a subscription. Interactive lessons with slides and coding trainers: 111.

Introduction to Django5 topics
  1. How the Web Works: HTTP, Client–Server and the Role of a Web Framework
  2. Django and the MTV Architecture: A Request's Path from URL to Response
  3. Installing Django 5 and Your First Project: venv, startproject, runserver
  4. Django Apps: startapp and Your First Page
  5. Project Settings: settings.py, .env and Multiple Environments
URLs, Views and Templates9 topics
  1. Routing: path(), include() and Path Converters
  2. Route Names, Namespaces and reverse()
  3. HttpRequest and HttpResponse: Request Data, JSON and Redirects
  4. Templates: The TEMPLATES Setting, render() and Context
  5. Template Tags and Filters: if, for, url, date, default, safe
  6. Template Inheritance: extends, block and include
  7. Static Files: CSS, JS and Images with {% static %}
  8. Custom Template Tags, Filters and Context Processors
  9. Project: A Multi-Page Company Website with Django Templates
Models and Migrations5 topics
  1. Models and the ORM: Your First Model and Connecting PostgreSQL
  2. Model Fields and Their Options: null, blank, default, choices
  3. The Meta Class: Ordering, Indexes and Constraints
  4. Model Methods: __str__, get_absolute_url, Properties and save()
  5. Migrations: makemigrations, migrate, Rollback and Data Migrations
ORM: Querying the Database5 topics
  1. QuerySet Basics: all, filter, exclude, get, Ordering and Laziness
  2. Creating, Updating and Deleting Records: save, update, bulk_create
  3. Lookups and Q Objects: Complex Filter Conditions
  4. F Expressions and Database Functions: F, Case/When, Concat, Coalesce
  5. Transactions: atomic, on_commit and select_for_update
Model Relations, Aggregation and Django Admin9 topics
  1. ForeignKey and OneToOneField: Relations, on_delete and related_name
  2. ManyToManyField and the Intermediate through Model
  3. Aggregation and Grouping: aggregate, annotate, values
  4. The N+1 Problem: select_related, prefetch_related, only and defer
  5. Custom Managers and QuerySets: Reusable Queries
  6. Model Inheritance: Abstract, Multi-Table and Proxy Models
  7. Django Admin: Registering Models and Configuring the List View
  8. Advanced Admin: Inlines, Actions, Filters and Autocomplete
  9. Project: Library Catalog — Models, Relations, Admin and Reports
Class-Based Views and Forms9 topics
  1. Class-Based Views: View, TemplateView, Mixins and MRO
  2. ListView and DetailView: Object Lists and Detail Pages
  3. Pagination and Search: Paginator, GET Parameters and SearchVector
  4. Django Forms: The Form Class, Fields, Widgets and POST Handling
  5. Form Validation: clean_<field>, clean() and Validators
  6. ModelForm: Forms from Models and save(commit=False)
  7. CreateView, UpdateView, DeleteView and the Messages Framework
  8. Formsets: formset_factory and inlineformset_factory
  9. File and Image Uploads: FileField, ImageField and Media
Authentication and Permissions6 topics
  1. Authentication: User, login, logout and LoginRequiredMixin
  2. Custom User Model: AbstractUser and Email Login
  3. User Registration and Password Reset
  4. Permissions, Groups and Object Ownership
  5. Sessions and Cookies: request.session and Settings
  6. Project: A Blog in Django
Advanced Django Features8 topics
  1. Middleware: The Request Processing Chain and Custom Middleware
  2. Signals: post_save, pre_delete and Custom Signals
  3. Caching with Redis: cache_page, Fragment Caching and the Cache API
  4. Sending Email: send_mail, HTML Emails and SMTP
  5. Internationalization: gettext, {% translate %} and .po Files
  6. A Multilingual Site in az/ru/en: i18n_patterns and a Language Switcher
  7. Django Security: CSRF, XSS, SQL Injection and Clickjacking
  8. Project: An Online Store with a Shopping Cart
Testing Django Projects5 topics
  1. Testing in Django: TestCase, the Test Database and the Test Client
  2. pytest-django: Fixtures, Markers and Parametrization
  3. Test Data: factory_boy and Faker
  4. Mocks and Coverage: unittest.mock, Email Tests and coverage.py
  5. Project: Covering the Online Store with Tests
Django REST Framework12 topics
  1. REST APIs and Django REST Framework: Principles and a First Endpoint
  2. DRF Serializers: Serializer, Fields and Validation
  3. ModelSerializer: Nested Serializers and Computed Fields
  4. APIView and DRF Generic Views
  5. ViewSet, ModelViewSet and Routers
  6. Authentication in DRF: Token and JWT (simplejwt)
  7. Permissions in DRF: Built-in and Custom Permission Classes
  8. Filtering, Search, Ordering and Pagination in DRF
  9. Throttling, Versioning and CORS
  10. API Documentation: drf-spectacular and Swagger UI
  11. Testing APIs: APIClient and pytest
  12. Project: A REST API with DRF and JWT
Celery and Async Django5 topics
  1. Celery and Redis: Setup and Your First Background Task
  2. Celery Tasks in Practice: apply_async, Retries and on_commit
  3. Periodic Tasks: Celery Beat and Monitoring with Flower
  4. Async Django: Async Views, ASGI and an Overview of Channels
  5. Project: Background Notifications and Reports with Celery
FastAPI Basics and Pydantic v210 topics
  1. Why FastAPI: ASGI, async and Type Hints
  2. Your First FastAPI App: Installation, uvicorn and Swagger UI
  3. Path Operations and Path Parameters: Methods, Types and Enum
  4. Query Parameters: Defaults, Lists and Validation with Query
  5. Headers, Cookies, Forms and the Request Object
  6. Pydantic v2: BaseModel, Types, Field and Serialization
  7. Request Body: Pydantic Models, Nested Models and Body
  8. Validation in Pydantic v2: field_validator, model_validator and Annotated Types
  9. Response Models and Status Codes: response_model and In/Out Schemas
  10. Project: A Task Manager API with FastAPI
FastAPI Architecture and Features10 topics
  1. Dependency Injection: Depends, Annotated and Class Dependencies
  2. Dependencies with yield, Global Dependencies and dependency_overrides
  3. APIRouter and Project Structure: Modules, Prefixes and Tags
  4. Settings with pydantic-settings and the Application Lifespan
  5. Error Handling: HTTPException and Custom Exception Handlers
  6. Middleware and CORS in FastAPI
  7. Background Tasks: BackgroundTasks and When You Need Celery
  8. Uploading and Serving Files: UploadFile, StaticFiles and FileResponse
  9. WebSockets in FastAPI: A Chat and a Connection Manager
  10. OpenAPI Docs: Metadata, Tags, Examples and Customizing /docs
FastAPI and Databases: SQLAlchemy 2.0 and Alembic8 topics
  1. SQLAlchemy 2.0: Engine, Session and Connecting to PostgreSQL
  2. SQLAlchemy 2.0 Models: DeclarativeBase, Mapped and mapped_column
  3. 2.0-Style Queries: select(), where, join and scalars
  4. Relationships in SQLAlchemy: relationship, back_populates and selectinload
  5. Async SQLAlchemy: AsyncSession, asyncpg and async_sessionmaker
  6. FastAPI + SQLAlchemy: The Database Session via Depends
  7. Alembic Migrations: init, autogenerate, upgrade and downgrade
  8. CRUD Layer and Repositories: Separating Schemas, Models and Logic
Auth, Testing and Async in FastAPI8 topics
  1. Password Hashing and User Registration
  2. OAuth2 Password Flow: OAuth2PasswordBearer and the Token Endpoint
  3. JWT in FastAPI: Creating and Verifying Tokens and get_current_user
  4. Authorization: Roles, Ownership Checks and Scopes
  5. Testing FastAPI: pytest and TestClient
  6. Async Tests: httpx.AsyncClient, a Test Database and Transactions
  7. Async in Practice: Blocking Code, gather and httpx
  8. Project: A CRUD Service on FastAPI + PostgreSQL with Authentication
Docker, Deployment and the Final Project7 topics
  1. Docker for Django and FastAPI: Dockerfile and .dockerignore
  2. docker compose: PostgreSQL, Redis, Celery and the App
  3. Production Servers: gunicorn, uvicorn and Static Files
  4. Nginx as a Reverse Proxy and HTTPS: Deploying to a VPS
  5. CI with GitHub Actions: Tests, Linting and Docker Image Builds
  6. Django or FastAPI: Comparison and Choosing for the Task
  7. Final Project: A Django Application and a FastAPI Service
Django for Production: Auth, Logs and Monitoring7 topics
  1. Social and Email Auth: django-allauth
  2. Custom Management Commands: BaseCommand
  3. Logging in Django: LOGGING, JSON and Environments
  4. Error Tracking with Sentry
  5. SEO Feeds: sitemap, RSS and robots.txt
  6. PostgreSQL Full-Text Search: SearchVector, SearchRank and trigram
  7. GeoDjango and PostGIS: points, distance and maps
Frontend Integration, CMS and Profiling4 topics
  1. htmx with Django: partial templates, hx-get/post/swap, forms, CSRF, infinite scroll
  2. Tailwind and Crispy Forms: django-tailwind, crispy-tailwind, rendering forms, widget customization
  3. Wagtail CMS: page models, StreamField blocks, templates, images/documents, search, headless API
  4. Debug Toolbar and Query Profiling: SQL panel, N+1, nplusone/silk, queryset.explain()
Deeper Django and FastAPI Extras4 topics
  1. Custom Model Fields and Raw SQL: Field Subclasses, Lookups, raw()
  2. Testing Matrix: tox, nox, pytest-django, Coverage and CI
  3. SQLModel with FastAPI: Table and Schema Models, CRUD, Relationships, Alembic
  4. GraphQL with Strawberry in FastAPI: Types, Mutations, DataLoader, Subscriptions
Security, Testing and Deployment4 topics
  1. E2E for Django: pytest-django, pytest-playwright, live_server, Auth State and CI
  2. Stripe Payments in Django
  3. Production Deployment of Django
  4. Django Security Checklist (OWASP)

Group and individual classes include a teacher, homework review and a certificate. The subscription gives you materials, exercises and progress tracking at your own pace, without teacher feedback.

Django & FastAPI course: how to enroll

Fill in the form and we will tell you the start date of the next group, the schedule and payment terms. Or come to a free trial lesson first.

WhatsApp