Complete Python Web Course: Build 8 Python Web Apps

Build Python Web Applications from Beginner to Expert using Python and Flask
4.4 (389 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.
3,882 students enrolled Bestselling in Python
$19
$90
79% off
Take This Course
  • Lectures 172
  • Exercises 6 coding exercises
  • Length 16 hours
  • Skill Level All Levels
  • Languages English
  • Includes Coding Exercises New!
    Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works

Discover

Find online courses made by experts from around the world.

Learn

Take your courses with you and learn anywhere, anytime.

Master

Learn and practice real-world skills and achieve your goals.

About This Course

Published 11/2015 English

Course Description

Updated 17 Nov 2016: added live chat for questions, and interactive coding exercise to maximise your learning!

The Complete Python Web Developer Course will lead you down a path of understanding and skill that may well, with work and patience, result in an income boost or a career change.

It is a one-stop-shop covering everything you need to start having ideas and creating Python web applications that engage visitors and provide them with value. In addition, I’ll always be available to help you further your learning and explore more avenues for success.

What do you have to do?

You’ll have immediate access to 8 carefully designed sections, each teaching and guiding you into creating a web application using Python: your challenge. I’ve created thorough, extensive, but easy to follow content which you’ll easily understand and absorb.

I recommend taking your time, as software development doesn’t happen overnight. Each section should take approximately one week, including developing the weekly challenge, reading around the subject, and practising further.

  • The course starts with the basics, including Python fundamentals, programming, and user interaction.
  • Then we will move onto how the internet works, making web requests and parsing webpages to get data from them using Python.
  • Now that you’ll have all the knowledge required, we’ll introduce our database of choice, MongoDB, and then proceed into creating our first Python web application: a blog where users can register and publish posts.
  • Then we will create a fantastic application to notify you when prices of items in online stores go down; a really useful web app!
  • After, we will be creating a more complex application using everything we know, to allow teachers and students to register, create courses, send notifications, and interact with one another.
  • Finally, we will explore creating a social network, the challenges it presents, and how we could solve them.

During all this, we’ll be learning about deploying our application, making it performing so it can scale to thousands of users, and usability and security issues.

Over the entire course you will learn:

  • Python
  • HTML
  • CSS
  • Responsive Design with Bootstrap
  • JavaScript
  • jQuery
  • MongoDB
  • Linux (UNIX)
  • APIs (both creating them and interacting with them)
  • Deployments to Heroku and DigitalOcean

What else will you get?

  • A friendly community to support you at all times
  • Personal contact with me: I’m always available to answer questions and help out
  • Lifetime access to course materials, even as more are released (and they are, very often!)
  • Hands-on learning to ensure you’re absorbing everything
  • A true understanding of the concepts of software development, design, and operations

By the time you’re done with the course you’ll have a fantastic set of fundamentals and extensive knowledge of Python, which will allow you to easily continue learning and developing more and more advanced and engaging web applications.

It doesn’t matter how old you are or what you do professionally. I guarantee that ANYONE can benefit from learning development and Python, but especially web application development.

Note the course is extremely new, and content is being continuously added. Although it is already very extensive, not all 8 apps are available yet. The last couple ones are being recorded at this moment and will be coming over the next couple weeks. After that, more apps will be added over time, and thus might end up spanning more than 8 apps.

So what are you waiting for? Sign up now, and I’ll see you on the inside!

What are the requirements?

  • A computer; any will do!
  • No software required, we'll install everything as we go.
  • We will also install Python in the course! We can use either Python2.7 or Python3.5

What am I going to get from this course?

  • Design, develop, and deploy engaging web applications using Python and web languages
  • Understand the way the internet works from the point of view of all development areas
  • Develop applications that use MongoDB databases

What is the target audience?

  • This course is for beginners with a none to a small amount of development experience, or for intermediate developers wanting to learn about deployments and development with Python
  • This course is not intended for advanced programmers with a lot of experience

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.

Curriculum

Section 1: Your Age in Seconds
Article

Download an e-book to go along the course, explaining the content covered by lectures with examples. For you to read at your own pace as well!

02:07

In this video we have a quick look at what we are going to understand in this Section:

  • How to install Python and use IDLE.
  • What Variables, strings, and integers are.
  • What methods are and how we can create our own.
  • What the str(), int(), print(), format(), and input() methods do.
  • What if, elif, and else do.
00:53

In this lecture we look at downloading and installing Python.

The version of Python used in this course is Python 3.4.3, which is the most recent at this time. If you are using a later minor version (e.g. 3.4.4 or higher), then you should encounter no problems at all. Python 3.5.0 is also absolutely fine. If you are using a later major version (e.g. 3.6.1 or higher), some things may change, but not substantially.

You may use Python 2.7 throughout the course for many things. Where possible, the differences between Python 3 and Python 2 will be highlighted in text below the lecture.

Remember the address to download Python from is http://python.org.

02:29

In this video we take a look at what integers and strings are.

Integers are just whole numbers (numbers without a decimal point).

Strings are collections of letters, numbers, and symbols; strings are also known as literals.

2 questions

Let's quickly firm up our knowledge on integers and strings!

02:10

In this lecture we take a look at creating variables in Python.

my_variable = 5
another_variable = "a string"
x = 153</span>

It really is that simple!

You can give variables any name you want as long as it is only letters, numbers, and underscores. Variables names may not start with a number. Also you may not use any of the Python keywords as a variable name.

For more information: http://www.pasteur.fr/formation/infobio/python/ch02s03.html

Creating variables
1 question
05:17

In this lecture we take a look at printing to the screen and at converting between strings and integers, and vice-versa.

To print to the screen just use the print() method.

>>> print("hello, world!")
hello, world!
>>> print(5)
5

The str() method converts numbers to strings, and the int() method converts to integers.

>>> "5"
'5'
>>> int("5")
5
>>> str(5)
'5'
The print, str, and int methods
1 question
04:50

In this lecture we take a look at how to format a string easily by replacing placeholders with values provided to the format() method.

>>> my_string = "this is a {} string"
>>> my_string.format("sample")
'this is a sample string'
>>> my_string.format("great")
'this is a great string'

We can also format multiple placeholders at once:

>>> "this is a {} {}".format("great", "number")
'this is a great number

And we can also format placeholders with names.

>>> "this is a {adjective} {noun}".format(adjective="great", noun="string")
'this is a great string'
>>> "this is a {adjective} {noun}".format(adjective="fantastic", noun="course")
'this is a fantastic course'
1 page

A cheatsheet covering the .format() method, for you to download and print out.

2 questions

Lets review how to format strings real quick!

The format() method
1 question
04:22

In this lecture we take a look at getting input from the user in the form of a string.

The input() method takes in a string that is the question to ask to the user, and returns another string, which is whatever the user wrote before pressing Enter.

>>> input("Enter your age: ")
Enter your age: 50
'50'
>>> user_age = input("Enter your age: ")
Enter your age: 50
>>> user_age
'50'
Asking users for input
1 question
03:57

In this lecture we take a look at creating our own methods, which are none other than names for a set of instructions which execute sequentially.

>>> def my_method():
        x = 10
        y = 50
        print(x + y)
>>> my_method()
60

Whenever you execute a method, the instructions run from the first instructions to the last.

In order to get the age in seconds, simply get the user's age, convert it to seconds, and then multiply it by 365 * 24 * 60 * 60.

Creating methods and functions
1 question
09:20

In this lecture we take a look at how to use if, elif, and else to control the flow of our program.

The if clause contains a condition. The code below the if clause only gets executed if the condition is true. The same thing happens with the elif clauses, but you can have many elif clauses (or none). The else clause does not use a condition.

price = 100
if price < 100:
    print("Buy the item!")
elif price == 100:
    print("You could buy it...")
else:
    print("Do not buy the item!")
3 questions

Let's check whether we've got everything in that last video!

If statements
1 question
Section 1 assignment video
02:15
2 questions

Review the Python basics in this quiz

Article

The code from this section posted on GitHub. Have a look!

Section 2: Price of a Chair
Our Development Environment
01:31
Creating virtual environments for Python development
05:27
Our Age application in PyCharm
03:32
(aside) Tweaking PyCharm
05:12
Understanding JSON and XML
Preview
07:36
Making our first HTTP GET request
04:45
Finding our chair price parsing HTML
03:59
Parsing HTML data using BeautifulSoup
07:00
Using the price as a number
06:46
2 questions

Revise the basics of HTTP in this quiz

Article

This is the code for the "What's a Browser" program, which covers the requests library and BeautifulSoup.

Section 3: A simple terminal Blog
07:55

If you are in Mac OS X or Linux, MongoDB will require a directory in /data/db. You will need to create this directory and give your user full permissions. After installing MongoDB, open a terminal console and run the following:

>>> sudo mkdir -p /data/db

>>> whoami

yourname

>>> sudo chown yourname /data/db

Optionally, you can install MongoDB using Docker instead of following the video. I'd recommend doing this if you don't know what Docker is. If you don't, don't worry! There is no need to use Docker at all.

To install MongoDB through Docker, follow this very short guide: http://schoolofcode.me/blog/60377/installing-mongodb-through-docker

Article

Some frequently asked questions when running MongoDB. Please read especially with regards to the next video!

Introduction to MongoDB
07:19
Creating a PyCharm project that uses MongoDB and pymongo
06:35
Simplifying lists in Python with list comprehension
06:19
2 questions

Revise a fabulous topic in Python with this quiz

Introduction to Object-Oriented Programming
14:01
Creating our first class, the Post
06:19
Creating a Database class for database interactions
14:40
The last few Post methods
03:24
Having default parameter values in Python methods
05:03
Understanding dates in Python: the datetime module
02:34
Verifying that the Post methods all work
04:53
The Blog class and @classmethods
13:45
Verifying the Blog methods all work
05:36
Starting the menu and user interactions
09:45
Finalising the Menu class
06:32
Finally, running the application!
03:36
Article

The code for the Terminal Blog program. Have a wee look after trying to code it yourself!

Section 4: Our first web application
Introduction to REST APIs
Preview
08:00
How can we make our own API? What is Flask?
07:24
Python cls() and argument unpacking
09:32
Creating the User model for our application
05:22
Starting developing the User model
10:19
Creating the login and register
07:40
Finding blogs by a specific author
06:31
Allowing creation of blogs and posts
07:09
Creating the static resources and templates
04:05
Our first template in Jinja2
Preview
08:34
Beginning CSS styling of pages
08:01
The user login page
14:32
The user registration page
06:11
Using Bootstrap for the first time for great styling
14:52
How can we display a list of blogs?
09:44
Displaying a list of posts
08:13
The Jinja2 if statement for structure control
02:03
3 questions

Let's review some Jinja2 in this quiz!

Creating new blogs (front-end)
09:14
Finalising the application by allowing to create posts!
09:00
Article

Check out the code for the web blog--remember to try to code it yourself first!

Section 5: Price alerts for any online web-store!
Intro and, what could be improved over last section?
03:02
Introducing Blueprints for Flask
02:26
Creating the app structure so it's easy to develop
04:11
Mapping out the app flow
06:21
Initialising the app
05:23
Initialising the models for our app
07:12
Creating our view structure: what do users interact with?
10:32
Logging users in: the model
17:51
Logging users in: the view
09:25
Adding a sample user to the database to verify login works
09:24
Introduction to Postman for API testing
06:29
Checking the login flow for errors
07:09
Registering users: the model
05:46
Introduction to RegEx (Regular Expressions)
07:54
Validating user e-mails and finalising the registration
04:14
Verifying the registration with Postman
01:23
Loading item prices with requests and BeautifulSoup
12:47
Saving items to MongoDB
01:50
Creating our Stores and getting live prices
03:55
Don't forget about _id!
02:57
Saving stores to MongoDB and using the url_prefix
10:51

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Jose Salvatierra, 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!

Ready to start learning?
Take This Course