Learn Flask in a scientific way

Qiang Hao
3 min readNov 12, 2019


Since I started working as a faculty two years ago, I spent more time writing papers than code. For a research project that I started a few months ago, my students and I had to pick a framework that can support fast prototyping and can also be learned given a month or two. Eventually, we picked Flask, spent time learning it, and used it to develop our intended product. The project is still ongoing and moving on smoothly.

Same as others, when I had to learn Flask, I went over a set of different tutorials other developers put online, and read a couple of books. The qualities of tutorials and books vary. Most tutorials carry a lot of assumptions about their readers but never laid those assumptions out clearly. Many tutorials presented too much information in a very short time, which is likely to overload learners cognitively. It takes a lot for learners, especially the novices, to overcome all these barriers to achieve effective learning. Reflecting on my still fresh learning experience, I want to write a series of tutorials that cover learning Flask in a more task-oriented and learner-centered way.

Development goals

We are going to develop a web application that allows scientists to post mean reviews they received for their papers, and check all mean reviews posted by other scientists.

This can potentially be a good venue to release the pressure they gain from academic life. The end product may look like this:

Assumptions about learners

  • Have some exposure to programming in Python.
  • Have some knowledge of object-oriented programming.
  • Know a little bit about Git.
  • Have some knowledge of HTML and CSS.
  • Have some knowledge of the basic structure of a Flask web application, and what “requests” and “responses” are in Flask. (Covered in Build and Test a Mini Flask Application.)

Source code and demo

Tutorial List



Qiang Hao

Assistant Professor of Computer Science at Western Washington University; human; cat lover; qhao.info