The Complete Python & PostgreSQL Developer Course
4.6 (871 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
8,100 students enrolled
Wishlisted Wishlist

Please confirm that you want to add The Complete Python & PostgreSQL Developer Course to your Wishlist.

Add to Wishlist

The Complete Python & PostgreSQL Developer Course

Build 9 projects—master two essential and modern technologies in Python and PostgreSQL
4.6 (871 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
8,100 students enrolled
Last updated 12/2016
Price: $120
30-Day Money-Back Guarantee
  • 21.5 hours on-demand video
  • 18 Articles
  • 20 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Have a coupon?
What Will I Learn?
Understand software and programming with Python from beginning to end
Create Python applications ranging from beginner, basic applications to advanced, useful and engaging applications
Learn how to extend Python applications by using a professional data storage which is PostgreSQL
Understand advanced concepts extremely useful in jobs and interviews, such as data structures and algorithms
View Curriculum
  • No pre-knowledge is required: I'll teach you absolutely everything you need to know!
  • A computer is required, but any will do. A desktop or a laptop running Mac, Windows, or Linux
  • All the software used in the course is free, and I'll personally walk you through setting it all up

Ever wanted to learn one of the most popular programming languages on the planet? Why not learn two of the most popular at the same time?

Python and SQL are used by many technology companies, small and large. That's because they are powerful, yet extremely flexible.

Python is used in the industry for things like embedded software, web development, desktop applications, and even mobile apps!

PostgreSQL allows your applications to become even more powerful by storing, retrieving, and filtering through large data sets easily.

This course is your one-stop shop for everything Python and PostgreSQL, and the instructor is constantly available to support your learning and answer questions.

Gallop through — or go at your own speed

You'll gain immediate access over 160 lectures and more than 20 hours of content, each developed with ease of learning in mind.

Using my previous teaching experience I've created crystal-clear and original content which you'll find easy to understand - and more importantly - to absorb.

You'll find learning both quick and fun. And, I've used techniques proven to effortlessly lock that knowledge in, as you breeze through each comprehensive chapter.

Fun, fast, and effective

This course will get you from being an absolute Python and PostgreSQL beginner to an experienced software developer.

Don't believe me? I offer a full money back guarantee, so long as you request it within 30 days of your purchase of the course.

Are you ready to transform your world and become an uber-confident app developer?

I'll see you on the inside!

Who is the target audience?
  • Complete beginners to programming and Python. The course follows concise explanations with hands-on projects, and has been created with the beginner in mind.
  • Intermediate programmers can fly through the first couple of sections and quickly learn about PostgreSQL and advanced Python concepts
  • This course is likely not for advanced programmers, although it has a lot of useful information and can serve well as a reference!
Students Who Viewed This Course Also Viewed
Curriculum For This Course
Expand All 180 Lectures Collapse All 180 Lectures 21:51:31
Installing Python
3 Lectures 07:12

In this first lecture video we introduce the course and what we are going to be learning!

Preview 03:29

Learn how to install Python on Windows. Remember to add Python to the PATH!

Preview 02:19

Learn how to install Python on Mac. It's very straightforward.

Preview 01:24
Python 101
11 Lectures 41:08

I have written private letters for students of this course to help in their learning journey. Take a look at this first one before you start learning programming.

My private letter to you as you start learning programming

As part of the course, students have full access to a live chat to ask questions in.

The Live Chat for Q&A

The Python Shell (also known as IDLE) is ideal for learning Python. It lets you run Python code interactively.

Preview 03:36

Learn about numbers and strings in Python, two key data types.

Preview 05:21

Learn how to create variables in Python.

Preview 06:14

Learn about the str() method, used to convert variables to strings.

Preview 03:33

Learn how to run a Python file from within IDLE. This is useful in order to be able to write larger programs and run them, as opposed to programming everything through the interactive console.

Running a Python file from the IDLE

Learn about the input() method, used to prompt the user for a string value.

Preview 05:39

Learn about the int() method, used to convert variables to an integer data type. Remember the variable value has have a format that you can convert to a number. This means converting something like "a" to an integer won't work.

The int() method to convert to Integers

Learn about the format() method, probably one of the most used methods in Python. It's used to replace elements of a string with other elements, which let you format strings easily and concisely.

The format() method to simplify String formatting

Download the code for the Age Program in this lecture. This is the app we've built in this section!

Age Program Code

This quiz is to test your knowledge and help you remember what we've covered. Don't skip it!

Section 2 Final Quiz
6 questions
Magic Numbers in Python
10 Lectures 53:37

Lists are used to store groups of items in order. Learn about lists in Python in this video.

Lists in Python

The for loop is one of two loops available to Python programmers.

The for loop in Python

Boolean expressions are True/False expressions. They are used to make decisions.

Boolean expressions, True and False

Learn about the if statement, a construct which uses Boolean expressions to alter the flow of your programs.

If statements in Python

Learn about the "in" keyword in Python, essential to check whether an element is inside a list.

The 'in' keyword to check whether a list contains an element

Let's change our application to allow our user to have multiple attempts at getting the right magic number.

Giving the user multiple chances in our program

Learn about the "random" module, and how we can use it to generate random integers in Python.

Generating random integers in Python

Learn in this video how to define your own methods. This is essential to divide your programs into manageable chunks. This improves readability and reusability of your code.

Defining our own methods in Python

Learn in this video how to return a value from a method. This is necessary so we can distribute the work that our program does across multiple methods.

Returning values from our methods in Python

Download the code for the Magic Numbers app in this lecture. This is the app we've built in this section!

Magic Numbers Code

This quiz will test your knowledge of the section, and help you retain all you've learnt! Don't skip it!

Section 3 Final Quiz
8 questions
A Lottery app
7 Lectures 38:15

Learn about the string split() method, used to separate a string into a list, where each element is a part of the string.

The String split() method

A key part of Python (and a fun part!) is list comprehension, which allows us to construct lists in place, using specific syntax.

List comprehension in Python

Learn about Sets in this video. Sets are not unique to Python, but they are extremely useful when dealing with unordered and unique groups of elements.

Python Sets — what is a Set?

Learn about set comprehension, which is extremely similar to list comprehension.

Set comprehension in Python

In this video we create the lottery numbers for our app.

Creating our lottery numbers

In this video we calculate the winnings of the user by calculating a Set intersection.

Calculating the lottery winnings

Download the code for the Lottery app in this lecture. This is the app we've built in this section!

Lottery App Code

This quiz will test your knowledge and help you retain all you've learned in this section! Don't skip it!

Section 4 Final Quiz
3 questions
More complex applications: a student registration system
12 Lectures 01:17:42

In this video we look at downloading PyCharm, arguably the most used Python IDE in the industry.

Installing PyCharm, a professional Python tool

In this video we look at setting up PyCharm on Mac.

Setting up PyCharm on Mac

In this video we look at setting up PyCharm on Windows.

Setting up PyCharm on Windows

Learn about dictionaries in Python. These are essential data structure in the form of key-value pairs.

Dictionaries in Python

Learn advanced dictionary usage in Python, such as including lists and other dictionaries inside a dictionary.

Advanced Dictionary usage in Python

Learn how a method returning a dictionary affects the dictionary.

Methods returning dictionaries

Learn how to append (add at the end) and element to an existing list. 

Appending to a list in Python

In this video we add marks to our student data structure by appending to the marks list.

Adding marks to our student data structure

Learn about the sum() method, used to easily add all elements of a list. Here we use it to help calculate the average mark of a student.

The sum() method in Python

Learn how to iterate over a dictionary. Here we need two iteration values, one for the key, and one for the value.

Iterating over a dictionary's keys and values

In the final video of this section, learn about creating a menu for our application so users can interact with it.

Creating the application menu

Download the code for the Student Registration System in this lecture. This is the app we've built in this section!

Student Registration System Code

This quiz will test your knowledge and help you retain all you've learned in this section! Don't skip it!

Section 5 Final Quiz
5 questions
Object-Oriented Programming: a movie rental system
13 Lectures 01:44:37

Learn about classes by comparing a Class to what we created in the last section. Learn how to implement classes in Python.

What are classes? Classes in Python

Create the Movie class for this section's application.

The Movie Class

Learn about the __repr__ method, used when printing out an object, and create the User class.

The User Class (and the __repr__ method)

Learn about the filter() method, which is extremely useful. It is used to remove elements from a list matching a boolean expression.

The filter() method in Python

Implement more methods of the Movie class with the help provided in this video.

More Movie operations and methods

Learn about opening files for reading and writing in Python.

Writing to a file in Python

Learn about CSV (Comma-Separated Value) files and how to save our data to a file in this format.

Saving CSV files with our data

Learn about loading data from CSV files in this video.

Loading our data from CSV files

Learn about JSON (JavaScript Object Notation), and how to save our data to a file with this format. JSON is more advanced and nowadays more common than CSV, although CSV is still used in many places.

Saving JSON files with our data

Learn about loading data into our application by reading JSON files.

Loading our data from JSON files

Learn about an extremely common Python construct which is the double asterisk. It is called argument unpacking.

Argument unpacking in Python (the two asterisks)

Create a menu for users to interact with our application in this video.

Creating the menu for our application

Download the code for the Movie Rental System in this lecture. This is the app we've built in this section!

Movie Rental System Code

This quiz will test your knowledge and help you retain all you've learned in this section! Don't skip it!

Section 6 Final Quiz
5 questions
Introduction to PostgreSQL
23 Lectures 02:36:46

In this lecture learn a bit more about what a database is, about relational database management systems, and also about other systems. We also touch into what scalability is and why it is important.

Introduction to databases

In this lecture learn how to install PostgreSQL on Windows.

Installing PostgreSQL on Windows

In this lecture learn how to use and run PostgreSQL on Windows.

Using PostgreSQL on Windows

In this lecture learn how to execute SQL queries on your database on Windows.

Executing SQL queries on Windows

In this lecture learn how to install PostgreSQL on Mac.

Installing PostgreSQL on Mac

In this lecture learn how to use and run PostgreSQL on Mac.

Using PostgreSQL on Mac

In this lecture learn how to execute SQL queries on your database on Mac.

Executing SQL commands on Mac

In this lecture learn how to import the data provided in the downloadable resources.

Using the sample data provided

This lecture explains the SELECT command, and how you can construct queries using it.

Preview 07:31

This lecture explains the WHERE command, and how you can filter queries with it.

Preview 04:16

This lecture explains the LIMIT command, and how you can limit the number of results returned by a query.

SQL: LIMIT for limiting the number of results

This lecture explains the UPDATE command, and how you can construct queries using it.

SQL: UPDATE data in a table

This lecture explains the DELETE command, and how you can remove data from a table with it. Remember to use a WHERE clause too so you don't delete all your data!

SQL: DELETE data from a table

This lecture explains the different SQL wildcards you can use for fuzzy matching of data in your filters.

SQL Wildcards for filtering unknowns

This important lecture explains what a JOIN is, and why it is essential for relational databases to support this.

Preview 14:21

This lecture gives some examples of constructing JOINs.

SQL: JOINs and JOIN examples

This lecture explains the GROUP BY command, and how you can aggregate results with it.

SQL: GROUP BY for aggregation of data

This lecture explains the ORDER BY command, and how you can sort results with it.

SQL: ORDER BY for sorting data

This lecture explains the CREATE TABLE command, and how you can create tables. It also talks about PRIMARY KEY, NOT NULL, CONSTRAINTS, and FOREIGN KEY.


This lecture explains the INSERT INTO command, and how you can add data to a table using it.

SQL: INSERT INTO for adding data to a table

This lecture talks about SEQUENCE, a PostgreSQL-only construct used to generate auto-incrementing values.

SQL: SEQUENCE for auto-incrementing fields

This lecture talks about what indexes are, how to create them (using CREATE INDEX), and also important things to remember about how PostgreSQL works with indexes, and multi-column indexes.

SQL: CREATE INDEX and advanced information about indexes

This lecture explains the DROP TABLE command, and how you can delete tables and their data.

SQL: DROP TABLE for deleting tables and data

This quiz will test your knowledge and help you retain all you've learned in this section. Don't skip it!

Section 7 Final Quiz
5 questions
Advanced PostgreSQL
6 Lectures 01:08:38

Learn about VIEWs in SQL and what they are used for. VIEWs provide more flexibility and restrictions in some scenarios for data entry.

SQL: VIEWs and what they are used for

Learn about some of the SQL built-in functions and the HAVING construct.

SQL: built-in functions and the HAVING construct

Learn about the age-old problem of dates in databases: timezones, representation, and daylight saving.

Dates in SQL: an old problem

Learn about more available data types in PostgreSQL, such as BYTEA and JSON.

Other data types in SQL (including JSON in PostgreSQL)

Learn about nested SELECT statements, which allow for much more flexible and complex queries.

Nested SELECT statements for complex queries

After looking at SEQUENCE, learn about the SERIAL type, which is a shorthand.

The PostgreSQL SERIAL type

This quiz will test your knowledge and help you retain all that you've learned in this section. Don't skip it!

Section 8 Final Quiz
5 questions
Python and PostgreSQL
19 Lectures 02:37:25

In this lecture we learn how to install Psycopg2 on Windows. It is a bit of a confusing process, so please bear with me!

Installing psycopg2 on Windows

In this video we learn how to set up psycopg2 on Mac. Fortunately, setting up on Mac or Linux is substantially simpler than on Windows.

Installing psycopg2 on Mac

In this video we verify that the psycopg2 installation was successful. Make sure that it is, and if not, ask a question in the course Q&A and we'll help you out!

Verifying everything works—don't proceed if it doesn't!

In this video we go through how to fix a problem with the PostgreSQL installation on Mac OS X 10.11. This problem is due to the way it installs alongside OS X 10.11 new feature SIP (System Integrity Protection).

Mac OS X: Fixing psycopg2 'library not loaded' error

In this lecture we look at an important part of the Python ecosystem: virtual environments (usually called virtualenvs).

What is a virtual environment?

In this video we install psycopg2 on a virtualenv on Windows so that our project can use it. It's essentially the same as installing on Windows, but we need to make sure that we are using the virtualenv's Python binary instead of the system Python.

Psycopg2 on a virtualenv on Windows

In this lecture we set up the application structure, and we look at what pip is and how to create a requirements.txt file.

Setting up the app structure, pip, and requirements.txt

In this lecture we review classes and how to create them, as they will be the foundation of this section's small app.

Recap on classes and object-oriented programming

In this lecture we look at saving our User object to the database using an INSERT statement executed with Python and psycopg2.

Saving to database from Python

In this lecture we look at loading from the database using a SELECT statement executed with Python and psycopg2.

Loading from the database from Python

In this lecture we remove a bit of duplicated code from our app and look into why readable and maintainable code is important.

Removing some duplicate code from our app

In this lecture we look at connection pooling. Connection pooling is an extremely important part of an app when dealing with a relational database management system such as PostgreSQL, because it improves performance.

Connection pooling and why it is important

In this lecture we create a ConnectionPool class which allows us to use the clause in Python.

Creating the ConnectionPool class

The ConnectionPool class was not exactly what we were looking for, so in this lecture we change it to a ConnectionFromPool class which does what we need.

Creating the ConnectionFromPool class

In this lecture we look at obtaining a cursor from our ConnectionFromPool class as opposed to just a connection to PostgreSQL.

Obtaining a cursor from the ConnectionFromPool class

In this lecture we look at selectively initialising the connection pool by putting it in a Database class, as opposed to as a lone variable at the top of the file.

The Database class and selective initialisation

In this lecture we clean up the Database class and review the meaning of the double asterisk sign—argument unpacking.

Cleaning up the Database class

In this video, we review what we have accomplished and learned! This section was an intense Python and psycopg2 learning experience, and we are now ready to learn more and build apps that use a great database system like PostgreSQL.

End of section review

This quiz will test your knowledge and help you retain all you've learned in this section! Don't skip it!

Section 9 Final Quiz
3 questions

In this "Keep thinking", I ask a few questions regarding files, folders, and operating systems. Have a look and play around with your computer while answering the questions. I promise that experimenting with this will be worthwhile.

Keep thinking: Section 9
Python Web and APIs
27 Lectures 04:38:10

An extremely important concept nowadays is the concept of API. Learn in this video what an API is, about different types of APIs, including REST APIs!

What is an API?

Learn how to make arbitrary web requests in Python. This is useful to request websites and web APIs.

Making requests in Python

Learn about what OAuth is in this video. This is extremely useful for those "log in with..." buttons.

What is OAuth?

In this video we quickly create the Twitter app so we can get our consumer key and secret, which are used to identify and sign our Twitter app.

Creating a Twitter app

In this video we set up necessary constants for our Twitter login.

Setting up Twitter login

Learn in this video about the request token, and how to retrieve one using Twitter and the oauth2 Python library.

Getting the OAuth request token

Important video—learn about the Python debugger and interacting with it through PyCharm. The debugger is an essential tool for any programmer, and we will be using it often!

More on the Python debugger—an essential tool

In this video we get the authorization code from the user, which we need in order to get an access token.

Getting authorization by the user

In this video learn about using the request token and the authorization code provided by the user to get the access token, which is used to represent the user in Twitter and our Twitter app.

Getting the OAuth access token

In this lecture we learn about using the Twitter Search API to search through recent tweets.

Performing Twitter requests: getting images

In this video we reuse code from the last section and reimplement the User class and saving to database. Now that we have that, it's easy to save access tokens alongside our user details.

Reusing code from the last section to save users

In this video we create our User object with an access token.

Creating users in our app

In this lecture we learn about retrieving users from the database together with their Twitter access tokens so we can then make requests on their behalf.

Retrieving users in our app

This very important lecture covers cleaning up the code and making it maintainable and readable. This is essential!

Cleaning up the code—extremely important!

Flask is a Python library which allows us to create web interfaces. In this lecture we create a simple Flask application to serve HTML content over the internet.

Introduction to Flask and Python Web Development

In this lecture we continue with our Flask application and add an endpoint to send users to Twitter to authorize our app.

Adding a Twitter login endpoint

In this lecture we add Twitter authorization to our app by having Twitter redirect to our app's URL.

Adding Twitter authorization

In this lecture we create the user profile, which is just another endpoint in our app.

Creating the user profile

In this lecture we look at a very useful decorator in Flask, the before_request decorator.

The Flask before_request decorator

In this lecture we learn to check if a user is already logged in, so we avoid re-authorizing.

Checking if a user is already logged in

In this lecture we create another endpoint that interacts with the Twitter API to search for tweets and display them in a HTML page.

Searching tweets and displaying them

In this lecture we make sure that the search endpoint is not limited to searching only with one query, but rather that the query is dynamic.

Searching for different things

In this lecture we look at Bootstrap, which is a framework for rapid styling of web pages.

What is Bootstrap?

In this lecture we quickly look into how we might go about writing our own CSS.

Writing our own CSS

In this lecture we create a form to allow our users to perform custom searches using the Twitter API.

Allowing users to perform custom searches

In this lecture we add sentiment analysis to our web application by interacting with yet another API. This is why learning to make API requests is important!

Adding sentiment analysis with another API

This quiz will test your knowledge and help you retain all you've learned in this section. Don't skip it!

Section 10 Final Quiz
6 questions

Download the code for the Twitter Login app in this lecture. This is the app we've built in this section!

Section 10: Twitter Login code
4 More Sections
About the Instructor
Rob Percival
4.6 Average rating
43,193 Reviews
241,726 Students
19 Courses
Web Developer And Teacher

Hi! I'm Rob. I have a degree in Mathematics from Cambridge University and you might call me a bit of coding geek.

After building websites for friends and family for fun, I soon learned that web development was a very lucrative career choice. I gave up my successful (and sometimes stressful) job as a teacher to work part time and today, couldn't be happier.

I'm passionate about teaching kids to code, so every summer I run Code School in the beautiful city of Cambridge. I also run the popular web hosting and design service, Eco Web Hosting which leaves me free to share my secrets with people like you.

You wouldn't believe the freedom that being a web developer offers. Sign up and find out for yourself why so many people are taking and recommending this course. I genuinely believe it's the best on the market and if you don't agree, I'll happily refund your money.

Sign up to my courses and join me in this amazing adventure today.

Jose Salvatierra
4.6 Average rating
2,040 Reviews
17,428 Students
6 Courses
Founder of School of Code and Computer Science instructor

I've been teaching computer science and playing and teaching music (grades 1 to 8) for over four years, to students of all ages and all skill levels. Here's my story so far.

I started programming at the age of 10, just a couple years after I started studying music, when my dad, excited that I had showed interest in similar things to himself, taught me the basics of Marin Saric's METAL. Shortly thereafter we moved on to RealBASIC, and from there I started learning, after a couple years, Java and C.

Ever since I started learning programming I knew I wanted to study Computer Science or something along those lines. Last year I ended up at the University of Dundee, studying Applied Computing.

The University of Dundee is one of the most prestigious for computing-related courses, and I was offered the chance to participate in their computing scholarships due to academic achievement.

I have worked for "Eseye", an M2M company, as an intern doing mainly backend developing, writing PHP scripts and programming Zenoss ZenPacks, and currently work for Skyscanner, one of Scotland's largest technology companies, programming mainly in Python and web languages.

At the moment I enjoy programming in Python, Java and C, playing and recording music, usually as an accompanying pianist for singers, and sports and bodybuilding. I hope that my courses are interesting to you, enjoyable and that you learn from them!