One-Month Django Learning Path for Interns

Objective: Equip the intern with foundational to intermediate knowledge in Django, progressing from function-based views (FBVs) to class-based views (CBVs) and ending with an introduction to Django Rest Framework (DRF).

Week 1: Introduction to Django and Function-Based Views (FBVs)

Goal: Understand the basics of Django and how to create applications using function-based views.

Day 1-2:

  • Python fundamentals refresher (if needed)

  • Introduction to Django: MVT architecture

  • Setting up Django environment

  • Creating a Django project and app

Day 3-4:

  • URL routing and Django's request-response cycle

  • Creating and rendering templates

  • Handling forms with FBVs

Day 5:

  • Models and database migrations

  • Performing CRUD operations using FBVs

Day 6:

  • Connecting templates to views and models

  • Static files and template inheritance

Day 7 (Weekend Assignment):

  • Mini project using FBVs (e.g., Blog or To-Do App)

Week 2: Intermediate Django and Class-Based Views (CBVs)

Goal: Transition from function-based views to class-based views and understand their advantages.

Day 8-9:

  • Understanding CBVs vs FBVs

  • Implementing ListView, DetailView, CreateView, UpdateView, DeleteView

Day 10-11:

  • Customising CBVs with mixins and method overrides

  • Using FormView, TemplateView, and RedirectView

Day 12:

  • Authentication system in Django (Login, Logout, Signup)

  • User permissions and groups

Day 13:

  • Messages framework

  • Pagination and filtering in CBVs

Day 14 (Weekend Assignment):

  • Build a CRUD-based app using CBVs (e.g., Event Manager)

Week 3: Django Admin, Testing, and Deployment

Goal: Gain practical skills in using the Django admin interface, writing tests, and basic deployment.

Day 15-16:

  • Customising Django admin

  • Adding custom admin filters and inlines

Day 17-18:

  • Writing unit tests for models and views

  • Using Django's test client

Day 19:

  • Settings management for different environments

  • Introduction to deployment on platforms like Heroku or PythonAnywhere

Day 20:

  • Prepare and deploy a project using GitHub + deployment platform

Day 21 (Weekend Assignment):

  • Finalise and deploy one CBV project with admin and basic tests

Week 4: Django Rest Framework (DRF)

Goal: Understand and build APIs using Django Rest Framework.

Day 22-23:

  • Introduction to REST and DRF

  • Creating serializers and basic API views

Day 24-25:

  • Using Generic Views and ViewSets

  • Routers and URL structure in DRF

Day 26:

  • Authentication in DRF (Token, Session, JWT intro)

  • Permissions and throttling

Day 27:

  • Testing DRF APIs using tools like Postman

  • Versioning and documentation (Swagger, DRF docs)

Day 28 (Final Assignment):

  • Create a REST API (e.g., Task Manager API)

  • Include CRUD endpoints, permissions, and authentication

Deliverables:

  • Three mini projects (FBV, CBV, DRF)

  • Deployment of at least one project

  • Final presentation or demo session

Resources: