Skip to content

AmanPython/Todolist

Repository files navigation

Django Rest Framework

About

Environment Setup

  • 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

Models and Custom user model

  • 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
    
    

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

Releases

No releases published

Packages

No packages published

Languages