0% found this document useful (0 votes)
335 views

Python Fundamentals Object Oriented Python: Web Development With Django Unit Testing With Python (Pytest) Design Patterns

The document outlines the content of a Python course, including topics such as Python fundamentals, object oriented programming, web development with Django, database programming, design patterns, and unit testing. The course covers Python syntax and statements, data types, functions, object oriented concepts, testing and more. It provides an in-depth overview of Python and related technologies.

Uploaded by

vsnpradeep
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
335 views

Python Fundamentals Object Oriented Python: Web Development With Django Unit Testing With Python (Pytest) Design Patterns

The document outlines the content of a Python course, including topics such as Python fundamentals, object oriented programming, web development with Django, database programming, design patterns, and unit testing. The course covers Python syntax and statements, data types, functions, object oriented concepts, testing and more. It provides an in-depth overview of Python and related technologies.

Uploaded by

vsnpradeep
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 30

Python Course Content

Python Object Oriented


Fundamentals Python
Web Unit Testing
Design
Development with Python
Patterns
with Django (pytest)
Unit Testing
Micro Database Design with Python
Services Programming Patterns (pytest)

We are ready to serve Latest Testing Trends, Are you ready to learn.

START DATE :

TIMINGS :

DURATION :

TYPE OF BATCH :

FEE :

FACULTY NAME :

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in


PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]
Python Course Content

Python Object Oriented


Fundamentals Python
What & Why’s of Python
1. What is Python?
2. Why do People Use Python?
3. Is Python a “Scripting Language”?
4. Where is Python Used?
5. What Can I do with Python?
6. How is Python Developed and Supported?
7. What are Pythons Technical Strengths?
8. First Steps with Python
9. Some big names and applications using python

Python Fundamentals
Getting Started
1. Getting Started with Python
a. Python 2 vs Python 3
b. Python Installation
c. Python Culture and Zen of Python
d. Significant Whitespace
e. Python Standard Library
f. Python Syntax
2. How Python Runs Programs
a. Introduction to Python Interpreter
b. Program Execution
c. Execution Model Variants
3. How You Run Programs
a. Interactive Prompt
b. System Command Lines and Files
c. Unix Style Executable Scripts
d. Clicking File Icons
e. Module Imports and Reloads
f. Using exec to Run Module Files
g. The IDLE User Interfaces
h. Other IDEs
i. Other Launch Options
j. Which Option Should I Use?
4. Developer Environment Setup
a. Visual Studio Code

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in


PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]
Python Course Content

b. PyCharm
Types and Operators
5. Introduction to Python Object Types
a. Conceptual Hierarchy
b. Why use Built-in Types?
c. Python’s core Data types
d. Numbers
e. Strings
i. Sequence Operations
ii. Immutability
iii. Type-Specific Methods
iv. Getting Help
v. Other Ways to Code Strings
vi. Unicode Strings
vii. Pattern Matching
f. Lists
i. Sequence Operations
ii. Type Specific Operations
iii. Bound Checking
iv. Nesting
v. Comprehensions
g. Dictionaries
i. Mapping Operations
ii. Nesting
iii. Missing Keys
iv. Soring Keys
v. Iterations & Optimization
h. Tuples
i. Why tuples?
i. Files
j. Other Core Types
6. Numeric Types
a. Basics
b. Numbers in Action
c. Other Numeric Types
i. Decimal
ii. Fraction
iii. Sets
iv. Booleans
d. Numeric Extensions

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in


PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]
Python Course Content

7. Dynamic Typing
a. Missing Declaration Statements
b. Shared References
c. Dynamic Typing Is Everywhere
8. String Fundamentals
a. String Basics
b. String Literals
i. Single, Double, Triple Quotes
ii. Escape Sequences
c. Strings in Action
i. Basic Operations
ii. Indexing and Slicing
iii. String Conversion Tools
d. String Methods
e. String Formatting Expressions and Methods
9. Lists and Dictionaries
a. Lists
b. Lists in Action
c. Dictionaries
d. Dictionaries in Action
10. Tuples, Files
a. Tuples
i. Tuples in Action
b. Files
i. Opening Files
ii. Using Files
iii. Files in Action
iv. Text and Binary Files
v. Storing Python Objects in Files: Conversions
vi. Storing Native Python Objects: pickle
vii. Storing Python Objects in JSON Format
viii. File Context Mangers
ix. Other File Tools
c. Core Types Review & Summary
i. Object Flexibility
ii. References vs Copies
iii. Comparisons, Equality and Truth
iv. Meaning of True and False in Python
v. Python Type Hierarchies
vi. Type Objects

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in


PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]
Python Course Content

vii. Other Types in Python


d. Built in Type Gotchas
11. Effective Python (Python Best Practices)
a. Pythonic Thinking
b. Lists and Dictionaries

Statements & Syntax


12. Introducing Python Statements
a. Pythons Conceptual Hierarchy
b. Python Statements
c. Why Indentation Syntax?
d. Special Cases
e. Interactive Loops
13. Assignments, Expressions, and Prints
a. Assignments Statements
b. Expression Statements
c. Print Operations
14. If Tests and Syntax Rules
a. If Statements
b. Python Syntax
c. Truth Values and Boolean Tests
d. The if/else Ternary Expression
15. While and for loops
a. While loops
b. Break, continue, pass and the Loop else
c. For loops
d. Loop Coding Techniques
16. Iterations and Comprehensions
a. Iterations
b. List Comprehensions
c. Other Iteration Contexts
d. Iterables
i. Range
ii. Map, zip and filter Iterables
iii. Multiple vs Single Pass Iterators
iv. Dictionary View Iterables
e. Other Iteration Topics
17. Debugging Python
a. pdb
b. IDE Debugging
18. Documentation

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in


PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]
Python Course Content

a. Python Documentation Sources


i. # Comments
ii. The dir Function
iii. DocStrings: __doc__
iv. PyDoc: The help Function
v. PyDoc: HTML Reports
vi. Beyond docstrings: Sphinx
Functions and Generators
19. Function Basics
a. Why Use Functions?
b. Coding Functions
c. Definitions & Calls
d. Intersecting Sequences
20. Scopes
a. Python Scope Basics
i. Scope Details
ii. Name Resolution: The LEGB Rule
iii. Built-in Scope
b. The global Statement
c. Scopes and Nested Functions
d. The nonlocal Statement
e. Why nonlocal?
21. Arguments
a. Argument Passing Basics
b. Special Argument-Matching Modes
c. Generalized Set Functions
22. Advanced Function Topics
a. Function Design Concepts
b. Recursive Functions
c. Function Objects: Attributes and Annotations
d. Anonymous Functions: lambda
e. Functional Programming tools (map, filter and reduce)
23. Comprehensions & Generations
a. List Comprehensions and Functional Tools
b. Generator Functions and Expressions
c. Comprehension Syntax Summary
24. Benchmarking
a. Timing Iteration Alternatives
b. Timing Iterations and Pythons with timeit
c. Pystones

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in


PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]
Python Course Content

d. Function Gotchas
25. Effective Python (Python Best Practices)
a. Functions
b. Comprehensions and Generators

Modules and Packages


26. Modules: The Big Picture
a. Why use modules?
b. Python Program Architecture
c. How Imports Work
d. Byte Code Files: __pycache__
e. Module Search Path
27. Module Coding Basics
a. Module Creation
b. Module Usage
c. Module Namespaces
d. Reloading Modules
28. Module Packages
a. Package Import Basics
b. Why Use Package Imports?
c. Python Relative Imports
d. Namespace Imports
29. Advanced Module Topics
a. Module Design Concepts
b. Data Hiding in Modules
c. Enable Future Language Features: __future__
d. Mixed Usage Modes: __name__ and __main__
e. Changing Module Search Path
f. The as Extension for import and from
g. Importing Modules by Name String

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in


PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]
Python Course Content

Object Oriented Python


Classes and Object-Oriented Programming
1. Object Oriented Programming: Big Picture
a. Why Use Classes
b. OOP high level overview
i. Classes and Instances
ii. Method Calls
iii. Coding Class Trees
iv. Operator Overloading
2. Class Coding Basics
a. Generating Multiple Instance Objects
b. Inheritance
c. Operator Overloading
d. Realistic Example
i. Making Instances
ii. Adding Behavior Methods
iii. Operator Overloading
iv. Customizing Behavior by Sub-classing
v. Customizing Constructors
vi. Using Introspection tools
vii. Storing Objects in Database (Pickles and Shelves)
3. Class Coding Details
a. The class Statement
b. Methods
c. Inheritance
d. Namespaces
e. Documentation Strings Revisited
f. Classes vs Modules
4. Designing with Classes
a. Python and OOP
b. OOP and Inheritance
c. OOP and Composition
d. OOP and Delegation
e. Multiple Inheritance
5. Advanced Class Topics
a. Extending Built-in Types
b. Static and Class Methods
c. Decorators and Metaclasses
d. The super Built-in Function
6. Exception Basics

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in


PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]
Python Course Content

a. Why Use Exceptions


b. Exceptions:
i. Default Exception Handler
ii. Catching Exceptions
iii. Raising Exceptions
iv. User-Defined Exceptions
v. Termination Actions
7. Exception Coding Details
a. The try/except/else Statement
b. The try/finally Statement
c. The raise Statement
d. The assert Statement
e. With/as Context Managers
8. Exception Objects
a. Exception Hierarchies
b. Built-In Exception Classes
c. Nesting Exception Handlers
d. Exception Idioms
e. Exception Design Tips
9. Managed Attributes
a. Why Manage Attributes
b. Properties
c. Descriptors
d. __getattr__ and __getattribute__
10. Decorators
a. What’s the Decorator?
b. Basics
i. Function Decorators
ii. Class Decorators
iii. Decorator Nesting
iv. Decorator Arguments
v. Decorators Manage Functions and Classes, Too
c. Coding Function Decorators
d. Coding Class Decorators
e. Managing Functions and Classes Directly
11. Metaclasses
a. Metaclass Model
b. Declaring Metaclasses
c. Coding Metaclasses
d. Metaclass vs Superclass

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in


PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]
Python Course Content

e. Metaclass Methods
12. Logging and Tracing
a. Logger Objects
b. Logger Levels
c. Formatter
d. Filter Objects
e. Log Record Objects and Attributes
f. Logger Adapter Objects
13. Concurrency
a. Starting and Stopping Threads
b. Thread Communications
c. Locking Critical Sections
d. Locking with Deadlock Avoidance
e. Storing Thread Specific State
f. Creating a Thread Pool
g. Performing a d Simple Parallel Programming
h. Dealing with GIL
i. Defining an Actor Task
j. Implementing Publish/Subscribe Messaging
k. Polling Multiple Thread Queues
14. Effective Python (Best Practices)
a. Classes and Interfaces
b. Metaclasses and Attributes
c. Concurrency and Parallelism
d. Robustness and Performance
e. Testing and Debugging
f. Collaboration

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in


PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]
Python Course Content
Web Unit Testing
Design
Development with Python
Patterns
with Django (pytest)
Web Development with Django
1. Getting Started
a. Introducing Django
i. Installing Django
ii. Installing a Python Virtual Environment
iii. Setting up a database
iv. Starting a project
v. The Model-View-Controller design pattern
2. Views and URLconfs
a. Sample Django-Powered Page: Hello World
i. Your first view
ii. Your first URLconf
iii. Regular expressions
iv. A quick note about 404 errors
v. A quick note about the site root
vi. How Django processes a request
b. Dynamic Content
c. Dynamic URLs
d. Django’s pretty error pages
3. Templates
a. Template System Basics
b. Using the template system
c. Dictionaries and contexts
d. Basic template-tags and filters
e. Philosophies and limitations
f. Using templates in views
g. Template loading
h. render()
i. Template subdirectories
j. The include template tag
k. Template inheritance
4. Models
a. The "dumb" way to do database queries in views
b. Configuring the database
c. Your first app
d. Defining Models in Python
e. Basic data access

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in


PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]
Python Course Content

5. The Django Admin Site


a. Using the admin site
i. Start the development server
ii. Enter the admin site
b. Adding your models to the admin site
c. Making fields optional
d. Customizing field labels
e. Custom model admin classes
f. Users, groups, and permissions
g. When and why to use the admin interface-and when not to
6. Forms
a. Getting data from the Request Object
i. Information about the URL
ii. Other information about the Request
iii. Information about submitted data
b. A simple form-handling example
i. Query string parameters
c. Improving our simple form-handling example
d. Simple validation
e. Making a contact form
f. Tying form objects into views
g. Changing how fields are rendered
h. Setting a maximum length
i. Setting initial values
j. Custom validation rules
k. Specifying labels
l. Customizing form design
7. Advanced Views and URL confs
a. URLconf Tips and Tricks
i. Streamlining function imports
ii. Special-Casing URLs in debug mode
iii. Named groups Preview
1. The matching/grouping algorithm
iv. What the URLconf searches against
v. Captured arguments are always strings
vi. Specifying defaults for view arguments
b. Performance
c. Error handling
d. Including other URLconfs
i. Captured parameters

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in


PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]
Python Course Content

e. Passing extra options to view functions


i. Passing extra options to include()
f. Reverse resolution of URLs
g. Naming URL patterns
h. URL namespaces
i. Reversing namespaced URLs
ii. URL namespaces and included URLconfs
8. Advanced Templates
a. Template language review
b. Requestcontext and context processors
i. auth
ii. DEBUG
iii. i18n
iv. MEDIA
v. static
vi. csrf
vii. Request
viii. messages
c. Guidelines for writing our own context processors
d. Automatic HTML escaping
i. How to turn it off
ii. For individual variables
iii. For template blocks
iv. Automatic escaping of string literals in filter arguments
e. Inside Template loading
i. The DIRS option
ii. Loader types
1. Filesystem loader
2. App directories loader
3. Other loaders
f. Extending the template system
i. Code layout
ii. Creating a template library
g. Custom template tags and filters
i. Writing custom template filters
1. Registering custom filters
2. Template filters that expect strings
3. Filters and auto-escaping
4. Filters and time zones
ii. Writing custom template tags

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in


PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]
Python Course Content

1. Simple tags
2. Inclusion tags
3. Assignment tags
h. Advanced custom template tags
i. A quick overview
ii. Writing the compilation function
iii. Writing the renderer
iv. Auto-escaping Considerations
v. Thread-safety Considerations
vi. Registering the tag
vii. Passing template variables to The Tag
viii. Setting a variable in the context
1. Variable scope in context
ix. Parsing until another block tag
x. Parsing until another block tag, and saving contents
9. Advanced Models
a. Related objects
i. Accessing ForeignKey values
ii. Accessing many-to-many values
b. Managers
i. Adding extra manager methods
ii. Modifying initial manager QuerySets
c. Model methods
i. Overriding predefined model methods
d. Executing raw SQL queries
e. Performing raw queries
i. Model table names
ii. Mapping query fields to model fields
iii. Index lookups
iv. Deferring model fields
v. Adding annotations
vi. Passing parameters into raw()
f. Executing custom SQL directly
i. Connections and cursors
ii. Adding extra Manager methods
10. Generic Views
a. Generic views of objects
b. Making "friendly" template contexts
c. Adding extra context
d. Viewing subsets of objects

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in


PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]
Python Course Content

e. Dynamic filtering
f. Performing extra work
11. User Authentication in Django
a. Overview
b. Using the Django authentication system
c. User objects
i. Creating superusers
ii. Creating users
iii. Changing passwords
d. Permissions and authorization
i. Default permissions
ii. Groups
iii. Programmatically creating permissions
iv. Permission caching
e. Authentication in web requests
i. How to log a user in
ii. How to log a user out
iii. Limiting access to logged-in users
1. The raw way
2. The login_required decorator
3. Limiting access to logged-in users that pass a test
4. The permission_required() decorator
5. Session invalidation on password change
f. Authentication views
i. Login
ii. Logout
iii. Logout_then_login
iv. Password_change
v. Password_change_done
vi. Password_reset
vii. Password_reset_done
viii. Password_reset_confirm
ix. Password_reset_complete
x. The redirect_to_login helper function
xi. Built-in forms
g. Authenticating data in templates
i. Users
ii. Permissions
h. Managing users in the admin
i. Creating users

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in


PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]
Python Course Content

ii. Changing passwords


i. Password management in Django
i. How Django stores passwords
ii. Using Bcrypt with Django
iii. Password upgrading
iv. Manually managing a user's password
j. Customizing authentication in Django
i. Other authentication sources
ii. Specifying authentication backends
iii. Writing an authentication backend
iv. Handling authorization in custom backends
v. Authorization for anonymous users
vi. Authorization for inactive users
vii. Handling object permissions
k. Custom permissions
l. Extending the existing user model
m. Substituting a custom user model
12. Testing in Django
a. Introduction to testing
b. Introducing automated testing
i. What are automated tests?
ii. So why create tests?
c. Basic testing strategies
d. Writing a test
e. Creating a test
f. Running tests
g. Testing Tools
h. The test database
i. Using different testing frameworks
13. Deploying Django
a. Preparing your codebase for production
b. Critical settings
c. Environment-specific settings
d. HTTPS
i. CSRF_COOKIE_SECURE
ii. SESSION_COOKIE_SECURE
e. Performance optimizations
f. Error reporting
i. LOGGING
ii. ADMINS and MANAGERS

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in


PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]
Python Course Content

iii. Customize the default error views


g. Using a virtualenv
h. Using different settings for production
i. Deploying Django to a production server
j. Deploying Django with Apache and mod_wsgi
k. Serving static files in production
l. Scaling
i. Running on a single server
ii. Separating out the database server
iii. Running a separate media server
iv. Implementing load balancing and redundancy
v. Going big
m. Performance tuning
14. Generating Non-Html Content
a. The basics: views and MIME types
b. Producing CSV
c. Using the template system
d. Other text-based formats
e. Generating PDF
f. Install ReportLab
g. Write your view
h. Complex PDF's
i. Other possibilities
j. The syndication feed framework
k. The Sitemap framework
15. Django Sessions
a. Enabling sessions
b. Configuring the session engine
c. Using Sessions in Views
d. flush()
e. Session object guidelines
f. Session serialization
g. Setting test cookies
h. Using sessions out of views
i. When sessions are saved
j. Browser-length sessions vs. persistent sessions
k. Clearing the session store
16. Django Cache Framework
a. Setting up the cache
i. Memcached

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in


PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]
Python Course Content

ii. Database caching


iii. Filesystem caching
iv. Local-memory caching
v. Dummy caching (for development)
vi. Using a custom cache backend
vii. Cache arguments
b. The per-site cache
c. The per-view cache
d. Template fragment caching
e. The low-level cache API
f. Downstream caches
g. Using vary headers
h. Controlling cache: using other headers
17. Django Middleware
a. Activating middleware
b. Hooks and application order
c. Writing your own middleware
d. Available middleware
e. Middleware ordering
18. Security in Django
a. Django's built in security features
i. Cross Site Scripting (XSS) protection
ii. Cross Site Request Forgery (CSRF) protection
b. SOL injection protection
c. Clickjacking protection
d. SSL/HTTPS
e. Host header validation
f. Session security
g. Additional Security tips
19. Sample Site Building on Django

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in


PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]
Python Course Content

Unit Testing with Python (pytest)


1. Getting Started
a. What is pytest?
b. Getting pytest
c. Running pytest
d. Running Only One Test
e. Using Options
2. Writing Test Functions
a. Testing a Package
b. Using assert Statements
c. Expecting Exceptions
d. Marking Test Functions
e. Skipping Testing
f. Marking Tests as Expecting to Fail
g. Running Subset of Tests
h. Parametrized Testing
3. Pytest Fixtures
a. Sharing Fixtures Through conftest.py
b. Using Fixtures for Setup and Teardown
c. Tracing Fixture Execution with –setup-show
d. Using Fixtures for Test Data
e. Using Multiple Fixtures
f. Specifying Fixture Scope
g. Specifying Fixtures with usefixtures
h. Using autouse for Fixtures That Always Get Used
i. Renaming Fixtures
j. Parametrizing Fixtures
4. Built-in Fixtures
a. Using tmpdir and tmpdir_factory
b. Using pytestconfig
c. Using cache
d. Using capsys
e. Using monkeypatch
f. Using doctest_namespace
g. Using recwarn
5. Plugins
a. Finding Plugins
b. Installing Plugins
c. Writing Your Own Plugins
d. Creating an Installable Plugin

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in


PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]
Python Course Content

e. Testing Plugins
f. Creating a Distribution
6. Configuration
a. Understanding pytest Configuration Files
b. Changing the Default Command-Line Options
c. Registering Markers to Avoid Marker Typos
d. Requiring a Minimum pytest Version
e. Stopping pytest from Looking in the Wrong Places
f. Specifying Test Directory Locations
g. Changing Test Discovery Rules
h. Disallowing XPASS
i. Avoiding Filename Collisions
7. Using Pytest with Other Tools
a. pdb: Debugging Test Failures
b. Coverage.py: Determining How Much Code Is Tested
c. mock: Swapping Out Part of the System
d. tox: Testing Multiple Configurations
e. Jenkins CI: Automating Your Automated Tests
f. Unit Test: Running Legacy Tests with pytest

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in


PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]
Python Course Content

Design Patterns
1. The Factory Pattern
2. The Builder Pattern
3. Other Creational Patterns
a. Prototype Pattern
b. Singleton Pattern
4. The Adapter Pattern
5. The Decorator Pattern
6. The Bridge Pattern
7. The Facade Pattern
8. Other Structural Patterns
a. The flyweight Pattern
b. Model View Controller Pattern
c. Proxy Pattern
9. The Chain of Responsibility Pattern
10. The Command Pattern
11. The Observer Pattern
12. The State Pattern
13. Other Behavioral Patterns
a. Interpreter Pattern
b. Strategy Pattern
c. Memento Pattern
d. Iterator Pattern
e. Template Pattern
14. Microservices and the Pattern for the Cloud
a. The Microservices Pattern
b. The Retry Pattern
c. The Circuit Breaker Pattern
d. The Cache-Aside Pattern
e. Throttling

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in


PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]
Python Course Content

Unit Testing
Micro Database Design with Python
Services Programming Patterns (pytest)

Microservices with Python

Introduction to Microservices
1. Design, Plan and Execute
a. The traditional monolith approach and its problems
b. The characteristics of a microservices approach
i. Docker containers
ii. Container orchestration and Kubernetes
c. Parallel deployment and development speed
d. Strategic planning to break the monolith
i. The replacement approach
ii. The divide approach
iii. Change and structure approach
e. Executing the move
i. The load balancer
ii. Keeping the balance between new and old
1. Pilot phase
2. Consolidation phase
3. Final phase

Designing and Operating a Single Service – Creating a Docker Container


2. Creating a REST Service with Python
a. Analyzing the Thoughts Backend microservice
b. Designing the RESTful API
c. Specifying the API endpoints
d. Defining the database schema (SQL Alchemy)
e. Implementing the service
i. Introducing Flask-RESTPlus
ii. Handling resources
iii. Parsing input parameters
iv. Serializing results
v. Performing the action
vi. Authenticating the requests
f. Testing the code
i. Defining the pytest fixtures
ii. Understanding test_token_validation.py
iii. test_thoughts.py

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in


PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]
Python Course Content

3. Build, Run, and Test your Service Using Docker


a. Building your service with a Dockerfile
i. Executing commands
ii. Understanding the Docker cache
iii. Building a web service container
iv. Configuring uWSGI
v. Refreshing Docker commands
b. Operating with an immutable container
i. Testing the container
ii. Creating a PostgreSQL database container
c. Configuring your service
d. Deploying the Docker service locally
e. Pushing your Docker image to a remote registry
i. Obtaining public images from Docker Hub
ii. Using tags
iii. Pushing into a registry
4. Creating a Pipeline and Workflow
a. Understanding continuous integration practices
i. Producing automated builds
ii. Knowing the advantages of using Docker for builds
iii. Leveraging the pipeline concept
iv. Branching, merging, and ensuring a clear main build
b. Configuring Jenkins
c. Configuring GitHub
d. Pushing Docker Images from Jenkins

Working with Multiple Services – Operating the System through Kubernetes


5. Using Kubernetes to Coordinate Microservices
a. Defining the Kubernetes orchestrator
i. Comparing Kubernetes with Docker Swarm
b. Understanding the different Kubernetes elements
i. Nodes
ii. Kubernetes Control Plane
iii. Kubernetes Objects
c. Performing basic operations with kubectl
i. Defining an element
ii. Getting more information
iii. Removing an element
d. Troubleshooting a running cluster
6. Local Development with Kubernetes
a. Implementing multiple services

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in


PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]
Python Course Content

i. Describing the Users Backend microservice


ii. Describing the Frontend microservice
iii. Connecting the services
b. Configuring the services
i. Configuring the deployment
ii. Configuring the service
iii. Configuring the Ingress
c. Deploying the full system locally
i. Deploying the Users Backend
ii. Adding the Frontend
7. Configuring and Securing the Production System
a. Using Kubernetes in the wild
i. Creating an IAM user
b. Setting up the Docker registry
c. Creating the cluster
i. Creating the Kubernetes cluster
ii. Configuring the cloud Kubernetes cluster
1. Configuring the AWS image registry
2. Configuring the usage of an externally accessible
load balancer
3. Deploying the system
d. Using HTTPS and TLS to secure external access
e. Being ready for migration to microservices
i. Running the example
f. Deploying a new Docker image smoothly
i. The liveness probe
ii. The readiness probe
iii. Rolling updates
g. Autoscaling the cluster
i. Creating a Kubernetes Horizontal Pod Autoscaler
1. Deploying the Kubernetes metrics server
2. Configuring the resources in deployments
3. Creating an HPA
ii. Scaling the number of nodes in the cluster
1. Deleting nodes
iii. Designing a winning autoscaling strategy
8. Managing Workflows
a. Understanding the life cycle of a feature
i. Features that affect multiple microservices
ii. Implementing a feature

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in


PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]
Python Course Content

b. Reviewing and approving a new feature


i. Reviewing feature code
ii. Approving releases
c. Setting up multiple environments
d. Scaling the workflow and making it work
i. Reviewing and approving is done by the whole team
ii. Understanding that not every approval is the same
iii. Defining a clear path for releases
1. Emergency releases
iv. Releasing frequently and adding feature flags
v. Using feature flags
vi. Dealing with database migrations

Production-Ready System – Making It Work in Real-Life Environments


9. Monitoring Logs and Metrics
a. Observability of a live system
i. Understanding logs
ii. Understanding metrics
b. Setting up logs
i. Setting up anrsyslog container
ii. Defining the syslog pod
1. log-volume
2. syslog container
3. The front rail container
iii. Allowing external access
iv. Sending logs
v. Generating application logs
1. Dictionary configuration
2. Logging a request ID
3. Logging each request
4. Searching through all the logs
vi. Detecting problems through logs
1. Detecting expected errors
2. Capturing unexpected errors
3. Logging strategy
4. Adding logs while developing
vii. Setting up metrics
viii. Defining metrics for the Thoughts Backend
1. Adding custom metrics
ix. Collecting the metrics
x. Plotting graphs and dashboards

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in


PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]
Python Course Content

1. Grafana UI
2. Querying Prometheus
3. Updating dashboards
xi. Being proactive
1. Alerting
2. Being prepared
10. Handling Change, Dependencies, and Secrets in the System
a. Understanding shared configurations across microservices
i. Adding the ConfigMap file
1. Using kubectl commands
ii. Adding ConfigMap to the deployment
1. Thoughts Backend ConfigMap configuration
2. Users Backend ConfigMap configuration
3. Frontend ConfigMap configuration
iii. Handling Kubernetes secrets
1. Storing secrets in Kubernetes
2. Creating the secrets
a. Storing the secrets in the cluster
b. Secret deployment configuration
c. Retrieving the secrets by the applications
iv. Defining a new feature affecting multiple services
1. Deploying one change at a time
2. Rolling back the microservices
v. Dealing with service dependencies
1. Versioning the services
a. Semantic versioning
2. Adding a version endpoint
a. Obtaining the version
b. Storing the version in the image
c. Implementing the version endpoint
3. Checking the version
a. Required version
b. The main function
4. Checking the version

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in


PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]
Python Course Content

Database Programming in Python


1. Introduction to ORM (Object-Relational Mapper)
a. Querying with SQL commands in code
b. Why ORM?
2. Up and Running with SQLAlchemy
a. Installing and Importing SQLAlchemy
b. Loading Data Using SQLAlchemy
3. Querying with SQLAlchemy
a. Picking Database (mysql, Postgres)
b. Connecting to Databases
i. Connectors
ii. Connection Strings
c. Querying with SQL
d. ORM and Classical Mapping
e. The Declarative API
f. More Querying and Database Functions
g. Using Joins
h. Working with Hierarchical Tables
4. Creating Database
a. Creating Database
b. Creating Tables
c. Primary Keys, Constraints and Data Defaults
d. Inserting Data: Single and Multiple Rows
e. Loading a CSV into a Table
5. Manipulating Database
a. Updating Data in a Database
b. Correlated Updates
c. Deleting Data from a Database
d. Deleting Tables

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in


PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]
Python Course Content

Design Patterns
15. The Factory Pattern
16. The Builder Pattern
17. Other Creational Patterns
a. Prototype Pattern
b. Singleton Pattern
18. The Adapter Pattern
19. The Decorator Pattern
20. The Bridge Pattern
21. The Facade Pattern
22. Other Structural Patterns
a. The flyweight Pattern
b. Model View Controller Pattern
c. Proxy Pattern
23. The Chain of Responsibility Pattern
24. The Command Pattern
25. The Observer Pattern
26. The State Pattern
27. Other Behavioral Patterns
a. Interpreter Pattern
b. Strategy Pattern
c. Memento Pattern
d. Iterator Pattern
e. Template Pattern
28. Microservices and the Pattern for the Cloud
a. The Microservices Pattern
b. The Retry Pattern
c. The Circuit Breaker Pattern
d. The Cache-Aside Pattern
e. Throttling

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in


PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]
Python Course Content

Unit Testing with Python (pytest)


8. Getting Started
a. What is pytest?
b. Getting pytest
c. Running pytest
d. Running Only One Test
e. Using Options
9. Writing Test Functions
a. Testing a Package
b. Using assert Statements
c. Expecting Exceptions
d. Marking Test Functions
e. Skipping Testing
f. Marking Tests as Expecting to Fail
g. Running Subset of Tests
h. Parametrized Testing
10. Pytest Fixtures
a. Sharing Fixtures Through conftest.py
b. Using Fixtures for Setup and Teardown
c. Tracing Fixture Execution with –setup-show
d. Using Fixtures for Test Data
e. Using Multiple Fixtures
f. Specifying Fixture Scope
g. Specifying Fixtures with usefixtures
h. Using autouse for Fixtures That Always Get Used
i. Renaming Fixtures
j. Parametrizing Fixtures
11. Built-in Fixtures
a. Using tmpdir and tmpdir_factory
b. Using pytestconfig
c. Using cache
d. Using capsys
e. Using monkeypatch
f. Using doctest_namespace
g. Using recwarn
12. Plugins
a. Finding Plugins
b. Installing Plugins
c. Writing Your Own Plugins
d. Creating an Installable Plugin

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in


PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]
Python Course Content

e. Testing Plugins
f. Creating a Distribution
13. Configuration
a. Understanding pytest Configuration Files
b. Changing the Default Command-Line Options
c. Registering Markers to Avoid Marker Typos
d. Requiring a Minimum pytest Version
e. Stopping pytest from Looking in the Wrong Places
f. Specifying Test Directory Locations
g. Changing Test Discovery Rules
h. Disallowing XPASS
i. Avoiding Filename Collisions
14. Using Pytest with Other Tools
a. pdb: Debugging Test Failures
b. Coverage.py: Determining How Much Code Is Tested
c. mock: Swapping Out Part of the System
d. tox: Testing Multiple Configurations
e. Jenkins CI: Automating Your Automated Tests
f. Unit Test: Running Legacy Tests with pytest

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in


PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]

You might also like