Building Dynamic Applications with Flask and Django Frameworks

Create scalable web applications using Python-based Flask and Django frameworks.

Building Dynamic Applications with Flask and Django Frameworks showcase image
Track
Software Development
Level
Advanced
Language
English
Duration
30 hours
Learning Mode
Learn at ALC or at Home

Introduction

  • Classifying the Flask and Django frameworks for web development.
  • Arranging a smooth development environment for both Flask and Django.
  • Classify foundation in HTML syntax and CSS for web page structuring and styling.
  • Identify basic Flask concepts, server startup, and template integration.
  • Demonstrate database development in Flask, including SQLAlchemy ORM and CRUD operations.
  • Summarise RESTful APIs in Flask, covering application structure and configuration options.
  • Identify common Flask extensions and understand the deployment workflow.
  • Classify Django’s architecture, features, and disadvantages.
  • Examine Django web applications, focusing on project structure, views, and templates.
  • Operations in data management within Django, encompassing models, ORM, and forms.

What you'll learn ?

  • By the end of the course, learners will be able to:
  • Build web apps proficiently in both Flask and Django frameworks.
  • Set up the development environments while ensuring smooth coding experiences in Flask and Django.
  • Develop a solid foundation in HTML and CSS, enabling the creation of visually appealing web pages.
  • Discover the web development in Flask web development, including template handling and static file management.
  • Build skills in Flask database development, understanding SQLAlchemy ORM and CRUD operations.
  • Prepare RESTful APIs in Flask, demonstrating knowledge of application structure and configuration options.
  • Utilizing common Flask extensions and understanding the deployment workflow.
  • Build a solid understanding of Django, including project and app creation, views, and templates.
  • Build Django web applications with CRUD functionality, utilizing Django template language and static file management.
  • Designing data management in Django, understanding models, ORM, query sets, and forms for effective database interactions.

Syllabus

Introduction To Flask
  • What is Flask?
  • History of Flask
  • Why use Flask?
  • Flask vs Django
  • Setting up a development environment
  • Installing Flask and Hello World
  • Introduction to HTML and CSS
  • HTML syntax and Structure
  • Working With Classes and IDs
  • CSS basics and syntax
  • Creating a basic HTML document
  • Styling Webpage with CSS
  • Basic Flask Concepts
  • Server Startup and A complete Application
  • Templates - Part 1
    • Templates - Part 2
  • Flask - Bootstrap
  • Static Files
  • Flask HTTP methods
  • Request Response Cycle - Part 1
    • Request Response Cycle - Part 2
  • Error Handling and debugging - Part 1
    • Error Handling and debugging - Part 2
  • Python Database Framework
  • SQLAlchemy ORM - Part 1
    • SQLAlchemy ORM - Part 2
  • CRUD Operations
    • Creating tables in Flask
    • Inserting into table
    • Querying Data
    • Updating Data
    • Deleting Data
  • Database Migration
  • Web Forms
  • Email Support
  • Flask Blueprint
    • Template handling
    • Static File handling
    • Error handling
    • Flask Blueprint Decorator
    • Abort function
  • Flask Application Structure
    • Configuration Options
    • Application package
    • Application factory
    • Implementing Application functionality in Blueprint
  • Introduction to API
    • Web API
    • REST Framework
  • Postman Tool
  • Working with API Part 1
    • Working with API Part 2
    • Working with API Part 3
  • Designing RESTful APIs - Part 1
    • Designing RESTful APIs - Part 2
  • Common Flask Extensions
  • Deployment Workflow
  • What is Django
  • Django history
  • Features of Django
  • Disadvantages of Django
  • Applications of Django
  • Django MVC-MVT architecture
  • Why Use Django?
  • Webserver
  • Virtual Environment
  • Django Installation
  • Project in Django?
    • manage.py
    • init.py
    • settings.py
    • urls.py
    • wsgi.py
    • asgi.py
  • App in Django?
    • admin.py
    • apps.py
    • models.py
    • tests.py
    • views.py
  • Difference between project and app
  • Creating a project and an app
  • Registering an app
  • Runserver
  • Creating a View
  • Mapping the view to URLs
  • Creating models
  • Registering a model
  • Make migrations
  • Migrate
  • Creating a superuser
  • settings.py
  • Middleware
  • Django database connection
  • Small Project on Django
  • Templates
  • Django Template Language (DTL)
  • Creating a template directory
  • Rendering a template
  • Template Variables
  • Template Tag
  • Template Filters
  • If-else and For loop
  • Static Files
  • Models in Django
  • Django model Data Types and Fields list
  • ORM’s in Django
  • Query Sets in Django
  • Model instances
  • Django forms
  • Django Model Forms
  • Form widgets
  • CSRF Token
  • Django formsets and Modelformsets
  • Django Views and its types
  • Function Based View
    • CRUD Operations Using FBV
    • Insert Operation
    • Update Operation
    • Delete Operation
  • Class-based views (CBVs) - Part I
    • Class-based views (CBVs) - Part II
  • CRUD Operations Using CBV - Part I
    • CRUD Operations Using CBV - Part II
    • CRUD Operations Using CBV - Part III
  • Mixins in Django
  • URLs import reverse
  • Session and Cookies in Django
  • Enabling and configurating session
  • Session serialization
  • Working of cookies in Django
  • Use of cookies
  • Managing Cookies in Django: Setting, Modifying, Updating, and Deleting
  • Enabling and Disabling Cookies in Django
  • Django Serialization and Deserialization
  • Model serialization
  • Model inheritance styles
  • Authentication
  • Default authentication implementations
  • Working with the user object
  • Authentication with web request
  • Authorization
  • Permission caching and default Permission
  • Authentication vs Authorizations
  • Django Middleware
  • Inbuilt middlewares
  • Middleware structure
  • Configuration of multiple middleware classes - Example 1
  • Configuration of multiple middleware classes - Example 2
  • Maintenance Mode Application
  • Middleware application to show meaningful response
  • Advantages and Disadvantages of Middlewares
  • Mail system in Django
  • Other Email Functions
  • CSV Using Models
  • PDF Using Models
  • Introduction to Django Rest Framework
  • Django Rest framework History and Versions
  • Advantages and Disadvantages of Django Rest Framework
  • Applications of Django Rest Framework
  • Web API VS Web Browser
  • Webservices and its types
    • SOAP Based Web Services
    • REST (Representational State Transfer) web services
    • Difference between SOAP and RESTful webservices
  • Django Rest Framework Installation
  • Serializers in DRF
  • Model Serializers in DRF
  • Advantages and disadvantages of serializers in DRF
  • Serializer mixins
  • Serializer Fields
  • Serializer Relations
  • Deserializers in DRF
  • JSON in DRF
  • Serializers and Deserializers in CRUD Operations
  • Advantages and disadvantages of deserializer
  • Validation of serializer
  • Difference serializer and deserializer in DRF
  • Views and its type in DRF
  • APIView
    • Creating a Simple API
  • GenericAPIView
    • Creating a GenericAPIView
  • ViewSets
  • ViewSet actions
  • Custom ViewSet base classes
  • Defining Router for TestViewSet
  • Difference between APIView and ViewSet
  • Authentication and Setting Authentication Schemes in DRF
  • Token based authentication in DRF
  • BasicAuthentication
  • SessionAuthentication
  • Custom authentication
  • Difference between TokenBased, Basic, Session and Custom Authentication
  • Unauthorized and Forbidden responses
  • OAuth
  • Authorization and permissions
  • Pagination in Django Rest Framework
  • Use of pagination
  • Implementing pagination in an API view
  • HTML pagination controls
  • Filters in DRF

Work-Centric Approach

The academic approach of the course focuses on ‘work-centric’ education. With this hands-on approach, derive knowledge from and while working to make it more wholesome, delightful and useful. The ultimate objective is to empower learners to also engage in socially useful and productive work. It aims at bringing learners closer to their rewarding careers as well as to the development of the community.

  • Step 1: Learners are given an overview of the course and its connection to life and work
  • Step 2: Learners are exposed to the specific tool(s) used in the course through the various real-life applications of the tool(s).
  • Step 3: Learners are acquainted with the careers and the hierarchy of roles they can perform at workplaces after attaining increasing levels of mastery over the tool(s).
  • Step 4: Learners are acquainted with the architecture of the tool or tool map so as to appreciate various parts of the tool, their functions, utility and inter-relations.
  • Step 5: Learners are exposed to simple application development methodology by using the tool at the beginner’s level.
  • Step 6: Learners perform the differential skills related to the use of the tool to improve the given ready-made industry-standard outputs.
  • Step 7: Learners are engaged in appreciation of real-life case studies developed by the experts.
  • Step 8: Learners are encouraged to proceed from appreciation to imitation of the experts.
  • Step 9: After the imitation experience, they are required to improve the expert’s outputs so that they proceed from mere imitation to emulation.
  • Step 10: Emulation is taken a level further from working with differential skills towards the visualization and creation of a complete output according to the requirements provided. (Long Assignments)
  • Step 11: Understanding the requirements, communicating one’s own thoughts and presenting are important skills required in facing an interview for securing a work order/job. For instilling these skills, learners are presented with various subject-specific technical as well as HR-oriented questions and encouraged to answer them.
  • Step 12: Finally, they develop the integral skills involving optimal methods and best practices to produce useful outputs right from scratch, publish them in their ePortfolio and thereby proceed from emulation to self-expression, from self-expression to self-confidence and from self-confidence to self-reliance and self-esteem!