Introduction to Practical Flask




Welcome to the practical Flask tutorial series. This series is dedicated to creating an actual website from scratch. We're going to clone PythonProgramming.net, which actually is written in Flask. Creating PythonProgramming.net includes:

  • How Flask helps Python interact with HTML
  • Using Bootstrap to style your website
  • Templating
  • User systems
  • Password Hashing
  • Databases
  • Content Management
  • ... and a whole lot more!

It is recommended that you understand the basics of how HTML works as well as the basics of how Python works. Other than that, you should be able to follow along.

The first thing you will need is some sort of a server. You can host a Flask application locally if you want. If you're using a Windows OS, operating a local MySQL database is going to be a challenge if you're a beginner, but you're free to try. We're going to show how to develop on an actual web server, though it is highly suggested by me that you do not develop and test on your live sever.

Developing on your live server is a bad idea because it will cause a lot of disruptions to your users and is also highly likely to expose security bugs live, even if for only a short time.

If you follow the video, we set up our web server via Digital Ocean.

My preferred host is actually Linode, though their cheapest server is $10/mo, compared to Digital Ocean's $5. I use both hosts fairly heavily, spending triple digits at both. All of my smaller servers go to Digital Ocean, but all of my major websites that require larger servers go to Linode.

Use whichever you want, or develop locally. Picking and buying a server is similar across VPS hosts. From there, we're going to be working with Ubuntu 14.10. You should have no problem working with future versions of Ubuntu as well.

To interact with your server, and to easily follow along with this tutorial series, it is recommended that you have an SSH client for running commands on your server, as well as some sort of remote file managing client. Some suggestions I have:

For Windows users, file management with a GUI can be done with FileZilla or WinSCP. Putty is an SSH client for Windows.

For Mac OS or Linux users, you can just type ssh username@hostname in your terminal for SSH access. FileZilla works for a file management GUI on Mac OS and Linux as well, though there are many other options for this. It is mostly Windows users who don't have many choices.


There exists 1 quiz/question(s) for this tutorial. for access to these, video downloads, and no ads.

The next tutorial:





  • Introduction to Practical Flask
  • Basic Flask Website tutorial
  • Flask with Bootstrap and Jinja Templating
  • Starting our Website home page with Flask Tutorial
  • Improving the Home Page Flask Tutorial
  • Finishing the Home Page Flask Tutorial
  • Dynamic User Dashboard Flask Tutorial
  • Content Management Beginnings Flask Tutorial
  • Error Handling with Flask Tutorial
  • Flask Flash function Tutorial
  • Users with Flask intro Tutorial
  • Handling POST and GET Requests with Flask Tutorial
  • Creating MySQL database and table Flask Tutorial
  • Connecting to MySQL database with MySQLdb Flask Tutorial
  • User Registration Form Flask Tutorial
  • Flask Registration Code Tutorial
  • Finishing User Registration Flask Tutorial
  • Password Hashing with Flask Tutorial
  • Flask User Login System Tutorial
  • Decorators - Login_Required pages Flask Tutorial
  • Dynamic user-based content Flask Tutorial
  • More on Content Management Flask Tutorial
  • Flask CMS Concluded Flask Tutorial
  • The Crontab Flask Tutorial
  • Flask SEO Tutorial
  • Flask Includes Tutorial
  • Jinja Templating Tutorial
  • Flask URL Converters Tutorial
  • Flask-Mail Tutorial for email with Flask
  • Return Files with Flask send_file Tutorial
  • Protected Directories with Flask Tutorial
  • jQuery with Flask Tutorial
  • Pygal SVG graphs with Flask Tutorial
  • PayPal with Flask Web Development Tutorial
  • Securing your Flask website with SSL for HTTPS using Lets Encrypt