The Flask quickstart guide is great. However when it was time to deploy it on my DigitalOcean, I found it impossible to access.

The doc says you should run to open it to external machines:

flask run --host=0.0.0.0

Yet I couldn't reach it remotely. Turns out my server was blocking port 5000. To open it I had to run:

ufw allow 5000/tcp

It turns out this is highly discouraged, and I should host it in a safer way. https://flask.palletsprojects.com/en/master/deploying lists the alternatives. I'll read up on them later.