‘The Complete Python/PostgreSQL Course 2.0’ course will teach you how to work with different types of databases and help you to understand when to use each in your Python apps. User-Defined Functions, Stored Procedures, Locking, Async database connections are some of the main topics covered in this course.

By the end of this course, you will be able to structure Python apps like a professional. The course is usually available for INR 2,799 on Udemy but you can click on the link and get the ‘The Complete Python/PostgreSQL Course 2.0’ for INR 499.

Who all can opt for this course?

  • Novice Python programmers who want to use databases to power the next phase of their application upgrades.
  • Any Python developer who wants to thoroughly grasp their options before employing a database in their applications but is unfamiliar with databases.
  • Who want to use a database to engage with or build larger apps using business analysis or data science.

Course Highlights

Key HighlightsDetails
Registration LinkApply Now!
PriceINR 499 (INR 2,79980% off
Duration13 Hours
Student Enrollment12,192 students
Topics CoveredPython, Postgre SQL, Python
Course LevelIntermediate
Total Student Reviews1,601

Learning Outcomes

  • Understand how databases work and how to take advantage of their features.
  • How to leverage the power of databases to upgrade your python applications.
  • Master PostgreSQL.
  • Produce engaging charts, graphs, and reports using database data.
  • Learn how to work with dates and times effectively in Python applications.

Course Content

S.No.Module (Duration)Topics
1.Introduction (03 minutes)Welcome to this course!
Initial setup (for newer Pythonistas)
Get the complete e-book here
2.A Full Python Refresher (04 hours 44 minutes)Introduction to this section
Access the code for this section here
Variables in Python
String formatting in Python
Getting user input
Writing our first Python app
Lists, tuples and sets
Advanced set operations
Booleans in Python
If statements
The “in” keyword in Python
If statements with the “in” keyword
Loops in Python
List comprehensions in Python
Destructuring variables
Functions in Python
Function arguments and parameters
Default parameter values
Functions returning values
Lambda functions in Python
Dictionary comprehensions
Unpacking arguments
Unpacking keyword arguments
Object-Oriented Programming in Python
Magic methods: _str_ and _repr_
@classmethod and @staticmethod
Class inheritance
Class composition
Type hinting in Python 3.5+
Imports in Python
Relative imports in Python
Errors in Python
Custom error classes
First-class functions
Simple decorators in Python
The ‘at’ syntax for decorators
Decorating functions with parameters
Decorators with parameters
Mutability in Python
Mutable default parameters (and why they’re a bad idea)
3.Build a Programming Journal with Python & SQL (01 hour 29 minutes)Overview of the project
Creating our user menu
What is SQL?
Using Python lists as an in-memory database
A SQLite data viewer
CREATE TABLE: new tables with SQL
How to write comments in SQL
CREATE TABLE exercises
How to connect to a SQLite database with Python
Connecting to SQLite in our app
What is a cursor?
INSERT INTO: add data to a table
INSERT INTO exercises
How to insert data into SQLite with Python
SELECT: retrieve data from a table
SELECT exercises
Retrieving results from a cursor
WHERE: search with SQL
WHERE exercises
DROP TABLE: deleting entire tables
DROP TABLE exercise
What is a SQL injection attack?
4.A Movie Watchlist App with Python & SQL (01 hour 40 minutes)Overview of the project
Three development stages of our project
Our starting code for this project
Queries we’ll need for the project to begin with
Write the database.py file
UPDATE: changing data with SQL
UPDATE exercises
Write our user menu and functions
Watched movies: second approach
DELETE FROM: removing rows with SQL
DELETE FROM exercises
Stage 2: watching movies
Relational data: primary and foreign keys
Relational data exercise
Watched movies: final approach
Stage 3: adding new watched movies
Auto-incrementing row IDs
Auto-incrementing exercise
JOIN: access two tables at once with SQL
Use JOINs to retrieve the movies a user has watched
Types of JOINs with examples
ORDER BY: sort the returned table
LIMIT: getting a certain number of rows
LIKE: flexible searching
What is an index in SQL?
Adding an index to our table for more efficient searching
5.Introduction to PostgreSQL: Migrating our App (41 minutes)SQLite vs. PostgreSQL
How to install PostgreSQL
How to run and access PostgreSQL
psycopg2 vs psycopg2-binary
How to store (and not store!) sensitive information in your code
Psycopg2 cursors and query parameters
Auto-incrementing columns: SEQUENCE and SERIAL in PostgreSQL
Our changed code, and finding differences between files
6.Building a Poll App & Advanced SQL (01 hour 38 minutes)Overview of the project
What is ACID?
Essential queries we’ll need for this project
RETURNING data from modified rows
Nested queries: getting the latest poll
SQL built-in functions
GROUP BY and calculating vote percentages
PostgreSQL window functions
PostgreSQL window functions (part 2)
How to use ORDER BY with window functions
How to use PARTITION with window functions
The SQL HAVING clause
SQL VIEW: virtual tables
How to read the PostgreSQL documentation
Adding type hinting to our application
7.Working with dates and times (01 hour 27 minutes)How to separate our database entities into models
Creating our Option model class
Changes needed in database.py
Changes needed in app.py
What is connection pooling?
How to create a connection pool with psycopg2
Reduce pooling duplication with context managers
Reduce cursor creation duplication with context managers
The Python datetime module
How to calculate new dates with timedelta
How to handle timezones with pytz
How to save dates to PostgreSQL
Add the vote date to our polling app
8.Python and Advanced PostgreSQL with psycopg2 (44 minutes)Composite primary keys
User-defined functions in PostgreSQL
Composite types and sets in functions
Stored procedures in PostgreSQL
Connections vs transactions in psycopg2
Locking in PostgreSQL
Asynchronous psycopg2
SQL string composition with psycopg2
9.Charting data from our tables using matplotlib (01 hour 09 minutes)Overview: creating graphs from poll data
How to install matplotlib
How to draw a line graph with matplotlib
Matplotlib backends
Matplotlib figures, axes, and plots
The Object-Oriented Approach with matplotlib
How to add multiple subplots to a figure
How to draw a pie chart with matplotlib
How to draw a bar chart with matplotlib
How to adjust the size of a matplotlib plot
How to adjust the x axis tick labels so they fit in the screen
How to draw a stacked bar chart with matplotlib
How to create a legend from your graphed data
How to export an image with matplotlib
How to create one document with multiple matplotlib plots
How to create a custom legend with matplotlib

Resources Required

  • Given that the course is focused on using PostgreSQL with Python, foundational knowledge of Python is necessary (a refresher in Python is provided).
  • An IDE or editor for Python, such as PyCharm or Visual Studio Code is required.
  • As everything you accomplish in this course takes place on the cloud, you don’t need to install anything else (although guidance to do it locally is also provided).

Featured Review

Wanju Chen (5/5) : I appreciate with the course very much. Jose is a very good lecturer. He explains every concepts in a complete and detailed way, which helps me understand everything easily. I am also impressed by how he always taught us how to read documents and how to learn programming in a correct way, which changes the way I learning programming. I hope Jose to open more courses in the future. Thank you very much!


  • Ghaleb Ennine (5/5) : Excellent explanation of the workflow to manage Database by python coding
  • Kristofor Lawson (5/5) : Jose is one of the best teachers on Udemy and the PostgreSQL course does not disappoint.
  • Regha Abraham (5/5) : Whiles every project always have room for improvement, I must say it is an excellent course as I comment below.
  • Sharath kumar (5/5) : Best course for python with SQLite and PostgreSQL with hands on projects.


  • A B (2/5) : thank you for watching!…” Lecturer insert practice exercises into some “db fiddle”, but those are not working! at least in my browser.
  • A B (2/5) : I assume he did not make any mistakes but at least I want to see how the code is working…
  • Oehmu Murcia (1/5) : This is not a PostgreSQL course just little parts of it.
  • Parminder (1/5) : Such a bad course i never expected from this instructor because i already taken Two Flask course and one i already finsihed and given 5 star rating, But this one is very bad i was expecting to build project using Postgres and python but this is most copy pasted not explained, You will learn nothing new if you already know sql, And other thing this instructor waste time in python refresher in every course, Earlier i was thinking to take Tkinter course but now i have doubt.

About the Author

The instructor of this course is Codestars which is a teaching Academy for the Next Generation of Coders. With 4.5 Academy Rating and 466,225 Reviews on Udemy, Codestars offers 81 Courses and has taught 2,223,234 Students so far.

  • Codestars team create courses on all the topics that students want to learn.
  • Codestars courses are well-structured, super interactive, and easy to understand.
  • Codestars wants to make it as easy as possible for learners of all ages and levels to build functional websites and apps.

Comparison Table

ParametersThe Complete Python/PostgreSQL Course 2.0Python 3: Deep Dive (Part 2 – Iteration, Generators)Python 3: Deep Dive (Part 3 – Dictionaries, Sets, JSON)
OffersINR 499 (INR 2,799) 80% offINR 455 (INR 3,499) 87% offINR 455 (INR 3,499) 87% off
Duration13.5 hours36 hours22 hours
Student Enrollments12,18728,67422,449
InstructorsCodestars • over 2 million students worldwide!Fred BaptisteFred Baptiste
Register HereApply Now!Apply Now!Apply Now!

Leave feedback about this

  • Rating