Skip to content

Latest commit

 

History

History
111 lines (91 loc) · 2.56 KB

File metadata and controls

111 lines (91 loc) · 2.56 KB

Django Roadmap for beginners

Part 1 (Development Basics):

  • Python virtual environment (pipenv, virtualenv, pyenv)
  • VCS (Version Control System):
    • Git and Github (commits, branches, merges, conflicts, stashing, pull requests)
  • IDE/Text Editor:
    • Pycharm Pro
    • VS Code (shortcuts, formatting, integrations, plugins)
  • Linux
  • Terminal
  • CMD
  • PowerShell

Part 2 (Databases)

  • RDB (PostgreSQL, MySQL, SQLite)
  • NoSQL (MongoDB, Redis)
  • ORM (Object-Relational Mapper)

Part 3 (Web knowledge)

  • How internet works generally?
    • HTTP protocol
    • Request / Response flow
  • What is an API / REST API?
  • HTTP Verbs
  • Status Codes
  • What is JSON & Serialization?

Part 4 (Basic Concept)

  • Basic knowledge of Python Programming Language
  • Oop concept
  • What is a framework and why use a framework at all?
  • Install django, django rest framework & virtual environment
  • Start django project
  • Follow best django project structure
  • Settings file
  • Creating models
  • Class based view Vs Function based view
  • Migrations
  • Basic APIView & JSON serializing
  • Registering view in url dispatcher

Part 5 (API)

  • ModelSerializer
  • CRUD, Different view types & http verbs
  • Different database relations
  • Writing models with relations
  • CRUD for endpoints with relations
  • Using urls file in every django app
  • ModelViewSet
  • DRF Router & browsable api

Part 6 (More in API)

  • API design principles
  • HyperlinkedModelViewSet
  • DRF serializers in depth
    • Relations
    • Nested Serializers
    • List Serializers
  • Filtering & Paginating results
  • Documenting endpoints with OpenAPI / Swagger

Part 7 (Authentication and Permission)

  • Authentication Vs Authorization
  • Different authentication types
    • Session Based,
    • Token Based
    • OAuth2
  • What is JWT and how it works
  • Djoser setup
  • Django_rest_simplejwt package and basic user log in
  • Authentication classes & permission classes
  • Protected API endpoints

Part 8 (Testing)

  • Python unittest package
  • Python requests package
  • DRF test framework
  • Unit Test Vs Functional Test
  • APIClient, APITestCase, RequestsClient, APILiveServerTestCase
  • Python coverage package
  • Increasing code coverage with more tests

Part 9 (Advance Concept)

  • Database Indexing (performance)
  • Custom User Model
  • CORS issues & working with client side applications
  • Email Queuing
  • Celery
  • Django Q
  • Celery beat
  • Celery execution pools
  • Async I/O and it's combination with celery

Part 10 (DevOps related)

  • WSGI and unix sockets
  • NGINX and web servers
  • DNS
  • Deploy django backend on fresh ubuntu server
  • Docker & Containerization
  • Docker Compose