Python Course Content - Python.direct · 8. First Steps with Python 9. Some big names and...

30
Python Course Content QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected] START DATE : TIMINGS : DURATION : TYPE OF BATCH : FEE : FACULTY NAME : We are ready to serve Latest Testing Trends, Are you ready to learn. Python Fundamentals Object Oriented Python Web Development with Django Unit Testing with Python (pytest) Design Patterns Micro Services Database Programming Unit Testing with Python (pytest) Design Patterns

Transcript of Python Course Content - Python.direct · 8. First Steps with Python 9. Some big names and...

Page 1: Python Course Content - Python.direct · 8. First Steps with Python 9. Some big names and applications using python Python Fundamentals Getting Started 1. Getting Started with Python

Python Course Content

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]

START DATE :

TIMINGS :

DURATION :

TYPE OF BATCH :

FEE :

FACULTY NAME :

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

Python Fundamentals

Object Oriented Python

Web Development with Django

Unit Testing with Python

(pytest)

Design Patterns

Micro Services

Database Programming

Unit Testing with Python

(pytest)

Design Patterns

Page 2: Python Course Content - Python.direct · 8. First Steps with Python 9. Some big names and applications using python Python Fundamentals Getting Started 1. Getting Started with Python

Python Course Content

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]

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

Python Fundamentals

Object Oriented Python

Page 3: Python Course Content - Python.direct · 8. First Steps with Python 9. Some big names and applications using python Python Fundamentals Getting Started 1. Getting Started with Python

Python Course Content

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]

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

Page 4: Python Course Content - Python.direct · 8. First Steps with Python 9. Some big names and applications using python Python Fundamentals Getting Started 1. Getting Started with Python

Python Course Content

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]

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

Page 5: Python Course Content - Python.direct · 8. First Steps with Python 9. Some big names and applications using python Python Fundamentals Getting Started 1. Getting Started with Python

Python Course Content

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]

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

Page 6: Python Course Content - Python.direct · 8. First Steps with Python 9. Some big names and applications using python Python Fundamentals Getting Started 1. Getting Started with Python

Python Course Content

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]

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

Page 7: Python Course Content - Python.direct · 8. First Steps with Python 9. Some big names and applications using python Python Fundamentals Getting Started 1. Getting Started with Python

Python Course Content

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]

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

Page 8: Python Course Content - Python.direct · 8. First Steps with Python 9. Some big names and applications using python Python Fundamentals Getting Started 1. Getting Started with Python

Python Course Content

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]

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

Page 9: Python Course Content - Python.direct · 8. First Steps with Python 9. Some big names and applications using python Python Fundamentals Getting Started 1. Getting Started with Python

Python Course Content

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]

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

Page 10: Python Course Content - Python.direct · 8. First Steps with Python 9. Some big names and applications using python Python Fundamentals Getting Started 1. Getting Started with Python

Python Course Content

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]

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

Page 11: Python Course Content - Python.direct · 8. First Steps with Python 9. Some big names and applications using python Python Fundamentals Getting Started 1. Getting Started with Python

Python Course Content

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]

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

Web Development with Django

Unit Testing with Python

(pytest)

Design Patterns

Page 12: Python Course Content - Python.direct · 8. First Steps with Python 9. Some big names and applications using python Python Fundamentals Getting Started 1. Getting Started with Python

Python Course Content

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]

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

Page 13: Python Course Content - Python.direct · 8. First Steps with Python 9. Some big names and applications using python Python Fundamentals Getting Started 1. Getting Started with Python

Python Course Content

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]

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

Page 14: Python Course Content - Python.direct · 8. First Steps with Python 9. Some big names and applications using python Python Fundamentals Getting Started 1. Getting Started with Python

Python Course Content

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]

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

Page 15: Python Course Content - Python.direct · 8. First Steps with Python 9. Some big names and applications using python Python Fundamentals Getting Started 1. Getting Started with Python

Python Course Content

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]

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

Page 16: Python Course Content - Python.direct · 8. First Steps with Python 9. Some big names and applications using python Python Fundamentals Getting Started 1. Getting Started with Python

Python Course Content

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]

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

Page 17: Python Course Content - Python.direct · 8. First Steps with Python 9. Some big names and applications using python Python Fundamentals Getting Started 1. Getting Started with Python

Python Course Content

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]

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

Page 18: Python Course Content - Python.direct · 8. First Steps with Python 9. Some big names and applications using python Python Fundamentals Getting Started 1. Getting Started with Python

Python Course Content

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]

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

Page 19: Python Course Content - Python.direct · 8. First Steps with Python 9. Some big names and applications using python Python Fundamentals Getting Started 1. Getting Started with Python

Python Course Content

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]

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

Page 20: Python Course Content - Python.direct · 8. First Steps with Python 9. Some big names and applications using python Python Fundamentals Getting Started 1. Getting Started with Python

Python Course Content

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]

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

Page 21: Python Course Content - Python.direct · 8. First Steps with Python 9. Some big names and applications using python Python Fundamentals Getting Started 1. Getting Started with Python

Python Course Content

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]

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

Page 22: Python Course Content - Python.direct · 8. First Steps with Python 9. Some big names and applications using python Python Fundamentals Getting Started 1. Getting Started with Python

Python Course Content

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]

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

Micro Services

Database Programming

Unit Testing with Python

(pytest)

Design Patterns

Page 23: Python Course Content - Python.direct · 8. First Steps with Python 9. Some big names and applications using python Python Fundamentals Getting Started 1. Getting Started with Python

Python Course Content

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]

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

Page 24: Python Course Content - Python.direct · 8. First Steps with Python 9. Some big names and applications using python Python Fundamentals Getting Started 1. Getting Started with Python

Python Course Content

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]

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

Page 25: Python Course Content - Python.direct · 8. First Steps with Python 9. Some big names and applications using python Python Fundamentals Getting Started 1. Getting Started with Python

Python Course Content

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]

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

Page 26: Python Course Content - Python.direct · 8. First Steps with Python 9. Some big names and applications using python Python Fundamentals Getting Started 1. Getting Started with Python

Python Course Content

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]

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

Page 27: Python Course Content - Python.direct · 8. First Steps with Python 9. Some big names and applications using python Python Fundamentals Getting Started 1. Getting Started with Python

Python Course Content

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]

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

Page 28: Python Course Content - Python.direct · 8. First Steps with Python 9. Some big names and applications using python Python Fundamentals Getting Started 1. Getting Started with Python

Python Course Content

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]

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

Page 29: Python Course Content - Python.direct · 8. First Steps with Python 9. Some big names and applications using python Python Fundamentals Getting Started 1. Getting Started with Python

Python Course Content

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]

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

Page 30: Python Course Content - Python.direct · 8. First Steps with Python 9. Some big names and applications using python Python Fundamentals Getting Started 1. Getting Started with Python

Python Course Content

QUALITY THOUGHT * www.facebook.com/qtworld * www.qualitythought.in PH: 9963799240, 8142193750 * Location: Ameerpet * Email: [email protected]

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