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:
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.