Complete Python Web Course: Build 8 Python Web Apps
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:
Responsive Design with Bootstrap
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
|Section 1: Your Age in Seconds|
Get the course e-book!
Integers and Strings
Integers and Strings Quiz
Variables in Python
Methods print(), str(), and int()
The format() method
The .format() cheatsheet
Formatting strings quiz
Getting user input with the input() method
Creating our own methods in Python
If statements in Python
If statements quiz
Section 1 assignment video
The Age Program Python Code
|Section 2: Price of a Chair|
Our Development Environment
Creating virtual environments for Python development
Our Age application in PyCharm
(aside) Tweaking PyCharm
Understanding JSON and XML
Making our first HTTP GET request
Finding our chair price parsing HTML
Parsing HTML data using BeautifulSoup
Using the price as a number
What’s a Browser program Python Code
|Section 3: A simple terminal Blog|
Introduction to MongoDB
Creating a PyCharm project that uses MongoDB and pymongo
Simplifying lists in Python with list comprehension
Python list comprehension
Introduction to Object-Oriented Programming
Creating our first class, the Post
Creating a Database class for database interactions
The last few Post methods
Having default parameter values in Python methods
Understanding dates in Python: the datetime module
Verifying that the Post methods all work
The Blog class and @classmethods
Verifying the Blog methods all work
Starting the menu and user interactions
Finalising the Menu class
Finally, running the application!
Terminal Blog program Python Code
|Section 4: Our first web application|
Introduction to REST APIs
How can we make our own API? What is Flask?
Python cls() and argument unpacking
Creating the User model for our application
Starting developing the User model
Creating the login and register
Finding blogs by a specific author
Allowing creation of blogs and posts
Creating the static resources and templates
Our first template in Jinja2
Beginning CSS styling of pages
The user login page
The user registration page
Using Bootstrap for the first time for great styling
How can we display a list of blogs?
Displaying a list of posts
The Jinja2 if statement for structure control
Creating new blogs (front-end)
Finalising the application by allowing to create posts!
The Web Blog program Python Code
|Section 5: Price alerts for any online web-store!|
Intro and, what could be improved over last section?
Introducing Blueprints for Flask
Creating the app structure so it’s easy to develop
Mapping out the app flow
Initialising the app
Initialising the models for our app
Creating our view structure: what do users interact with?
Logging users in: the model
Logging users in: the view
Adding a sample user to the database to verify login works
Introduction to Postman for API testing
Checking the login flow for errors
Registering users: the model
Introduction to RegEx (Regular Expressions)
Validating user e-mails and finalising the registration
Verifying the registration with Postman
Loading item prices with requests and BeautifulSoup
Saving items to MongoDB
Creating our Stores and getting live prices
Don’t forget about _id!
Saving stores to MongoDB and using the url_prefix
Checking the MongoDB RegEx search works
Complete flow: from items to stores to prices
Sending e-mails with our app: Mailgun
Setting up the Mailgun Sandbox server
Alert constants required for our e-mails
Setting up our Alert to send e-mails
Getting last updated alerts to decrease load on our app
Saving alerts to MongoDB
Notifying our users when the price is reached!
Entering test data into the application
The complete Alert workflow
|Section 6: Developing a complete front-end with Bootstrap|
Creating our Jinja template structure
Using inheritance in our Jinja templates
Fixing “template not found” error in PyCharm
Creating a navigation bar using Bootstrap and HTML
Collapsing the navigation bar to be more mobile friendly
Creating affordances: using Glyphicons in the navigation bar
Changing the links if the user is signed in
Serving endpoints dynamically using url_for in Jinja templates
Using the Bootstrap Jumbotron component for the homepage
Creating the registration form using Bootstrap and HTML
Fixing and finalising the logout form
Registering and logging in to our application
Getting the alerts for a specific user
Refactoring the User model and including Constants
Showing the user alerts Jinja template
Fixing the item price not showing up in the alert page
Pointing an alert item to an individual alert
Rendering the single alert Jinja template
Creating a button to add new alerts with Bootstrap and Jinja
Creating the new alert form with Jinja
Finalising creating alerts
Advanced Python: decorators
Creating the single alert page and adding manual price refresh
Deactivating an alert
Activating an alert
Showing inactive alerts in the Jinja list
Permanently deleting alerts
Fixing the alert price when creating a new alert
Ensuring that we are only checking active alerts
Creating the store index
Showing the list of stores and the store page
Adding the single store page in Jinja
Allowing the creation of new stores
Editing and deleting existing stores
Editing existing alerts so users can change the price point
Using Flask’s config file from Jinja
Creating the requires_admin_permissions decorator
Adding a link in the Mailgun API call
Fixing the last bugs and finishing the application
|Section 7: Simple development-stage deployments to Heroku|
Signing up for GitHub
Forking the GitHub repository from the last section
How to install Git on Windows
How to use the Windows Git Shell
How to install Git on Mac
How to install Git on Linux
Cloning the Git repository from GitHub onto your computer
File statuses and stages in Git
How to generate an SSH key for GitHub
Git commands: git commit and git push
Git command: git log to check previous commits
Signing up to Heroku
Installing the Heroku Toolbelt (Command-Line Interface)
Creating a new Heroku app
Getting values from environment variables in Python
Setting the environment variables in Heroku
Setting up Heroku required files in our project so Heroku knows what to run
Committing and pushing the new files to GitHub
Adding servers on Heroku (called ‘scaling dynos’)
Deploying our app to Heroku
Adding MongoLab to our Heroku app as an add-on
How to create a new MongoLab user
Changing our program’s database URI to match MongoLab’s
Using the Heroku logs to fix an Internal Server Error
Running our deployed app in Heroku
Another error: using the URI default database
Verifying the app works, and next steps in the course
|Section 8: Deploying your apps manually to a server|
Creating your DigitalOcean droplet
Logging in to your droplet
Setting up account permissions in CentOS
Installing Python in CentOS
Installing and setting up Nginx in CentOS
Creating the application structure for the deployment
Forking a GitHub repository and adding SSH keys
Installing the app in CentOS
Installing MongoDB in CentOS
Setting up uWSGI in CentOS
Running the app directly from your server
Adding the cron job to automate sending e-mails
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!
- Lectures 0
- Quizzes 0
- Duration 50 hours
- Skill level All level
- Language English
- Students 2477
- Assessments Self