- Environment Setup
- Models and Custom user model
- User Registration
- JWT Authentication
- User Login
- Sending Email
- User Email Verification
- Unittesting
- Viewsets and urls
- Generic API Views
- CORS and REST
- Django Template and Static Setup
- Pagination Support
- API Documentation
- Postman documentation integration
- Protect documentation views
- Admin and models
- Test coverage and reporting
- Github + Travis ci integration
- Deployment
- Creating Django Project
- django-admin startproject todolistapi .
- Virtual Environment Setup
- Create virtual Environment
virtualenv DRF
- Activate virtual Environment
source DRF/bin/activate
- Install the Requirments
pip3 install -r requirements.txt
- Settings.py
- INSTALLED_APPS = [
- 'rest_framework',
- ]
- Creating New Apps
- python manage.py startapp todos
- python manage.py startapp authentication
- Update Setings.py
- INSTALLED_APPS = [
- 'todos',
- 'authentication', ]
- Initialize Git
- git init
- Adding .gitignore file
- Creating a Tracking Model (Step - 1)
- Create helpers folder
- init.py
- models.py
- Writing code in models.py
from django.db import models class TrackingModel(models.Model): created_at = models.DateTimeField(auto_now_add = True) updated_at = models.DateTimeField(auto_now = True) class Meta: abstract = True ordering = ('-created_at')
- Edit Authentication Model
from django.db import models from helpers.models import TrackingModel class User(TrackingModel): pass
- Updating a Tracking Model (Step - 2)
- Edit Authentication Model
from django.contrib.auth.models import (PermissionMixin,BaseUserManager,AbstractBaseUser) class User(AbstractBaseUser,PermissionMixin,BaseUserManage): username_validator = UnicodeUsernameValidator() // copying from PermissionMixin > AbstractUser class MyUserManager(UserManager): pass
- Update Settings.py
- AUTH_USER_MODEL = "authentication.User" git commit id - https://github.com/niklaus18/TOdolist/commit/2b705ac0dd7bc06782563d8e4d85c2fd327e6092