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:
- Part 1 Introduction and Basics: Try Django 3.2 - Python Web Development
- Part 2 Class Based Views: Learn Django - Class-Based Views
- Part 3 Rest Framework: Build a Django REST API with the Django Rest Framework. Complete Tutorial.
- Part 4 Project: Django - Ecommerce Project


