If you're going to work on your own computer then it will need to be Windows, (cr)Apple or Linux with a decent screen size and a modern operating system (something from the last few years - Windows NT 4.0 won't cut it, nor will a Chromebook).
Python >= 3.9.0 (3.10.0 used at the time of writing - https://www.python.org/downloads/)
Flask >= 2.1 (pip install flask from the command line*)
SQLiteStudio >=3.4.4 to edit your SQLite3 database (https://sqlitestudio.pl/)
Your favourite IDE - Atom (https://atom.io/) was recommended by all sane, sober and coherent Software Engineers before Micr$oft killed it off, but some odd people like Visual Studio Code (https://code.visualstudio.com/download). Zed is a new up-and-coming IDE from the writers of Atom, and in time this will be a great choice as well (https://zed.dev). And Pycharm is always popular with the anti-VS Code crowd as well, although it can be sluggish at times (https://www.jetbrains.com/pycharm). These are not the only choices, but they are the most popular. You might prefer something else - Eclipse, Sublime Text, Notepad++, emacs, VIM, etc - whichever suits you best, you will want to set your chosen IDE up for Python development.
Essentially its the same as the level 2 requirement, but with some extra pip-installed packages
Python >= 3.9.0 (3.10.0 used at the time of writing - https://www.python.org/downloads/)
Flask >= 2.1 (pip install flask from the command line*)
Flask SQLAlchemy >= 3.1.1 (pip install flask-sqlalchemy from the command line)
Flask WTForms >= 1.2.0 (pip install flask-wtf)
SQLiteStudio >=3.4.4 to edit your SQLite3 database (https://sqlitestudio.pl/)
Your favourite IDE - Atom (https://atom.io/) was recommended by all sane, sober and coherent Software Engineers before Micr$oft killed it off, but some odd people like Visual Studio Code (https://code.visualstudio.com/download). Zed is a new up-and-coming IDE from the writers of Atom, and in time this will be a great choice as well (https://zed.dev). And Pycharm is always popular with the anti-VS Code crowd as well, although it can be sluggish at times (https://www.jetbrains.com/pycharm). These are not the only choices, but they are the most popular. You might prefer something else - Eclipse, Sublime Text, Notepad++, emacs, VIM, etc - whichever suits you best, you will want to set your chosen IDE up for Python development.
pip freeze can be used to find out what packages and what versions you have installed already.
You may need other packages depending on your project - these can typically be pip installed as required.
If you try to use pip to install something and you get a message along the lines of "pip is not recognised as an internal or external command" then you probably don't have Python set up properly - specifically its likely the PATH has not been told about Python or Pip. You can use the command line and where to find out where pip is, so it can be added (pro-nerd tip: where is the Windows-command rough-equivalent of Linux's which):
>where pip
And an example result for this might be:
C:\Program Files\Python39\Scripts\pip.exe
Now click the windows (start) button on the keyboard and start typing 'Environment Variables' - one of the results should be 'Edit the system environment variables (Control Panel)' - choose that, then click the [Environment Variables] button down the bottom of that window. You should now have a window that has two sections - User variables and System variables. In the System variables section, find and edit the variable called PATH, click NEW and add the path you found above. Log out, then log back in (or restart) and now you should be able to use pip.
You can do a basic test of your Flask development environment by creating a file called hello.py in your IDE and add the following:
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
if __name__ == "__main__":
app.run(debug=True)
Then run it either from within the IDE (pressing F5 will normally execute the file - if not, you'll need to investigate how to execute Python scripts in your IDE). Alternatively you can open a command window and navigate to the folder with hello.py in it, then manually execute it:
> python hello.py
You should then see a message, with the last line being something like:
Running on http://localhost:5000/
If you open a browser (Chrome or Firefox or... well, thats about it for browsers these days) and navigate to http://localhost:5000 you should see “Hello World!” appear. If so, Flask is working and you're good to go.
One thing you will see quite often in Python programs is this"
if __name__ == "__main__":
app.run() # or something...
The __name__ variable is a special Python one, and its contents are set when a program is either run or imported.
If your program is run, then the value __name__ gets is "__main__"
If your program is imported from another one then __name__ gets the name of the program being imported.
There is some example code here: https://replit.com/@Mr_D/name-main-example
So all that if statement does is makes sure that your program will only run if you specifically run it