Python and Flask

I have a project that needs a small internal web site. It’s only going to be about a dozen pages, mostly static. There will be a few forms and one page that displays dynamic information. Volume will be close to zero. I looked at/thought about all the pre-made tools out there — from Get Simple CMS to WordPress to Drupal. They seem to fall into two categories: way too heavy for the task of lack the capability to do the dynamic stuff without a big kludge.

I decided to look at frameworks. With Python being my language of choice (rather than PHP), I realized that Karrigell, Bottle and Flask were reasonable choices.\

I started working with Karrigell (I used ot many years ago) but realized there was just too much grunt work to do the pages. What I needed was a decent template system and a tool to do forms. Ultimately, I settled on Flask.

If you take a look, you will see two other packages integrated into it. They are Jinja2 and WTForms. There are other tools that plug in such as an ORM to talk to your database but I don’t need that. With little data to store, I will use flat files.

Jinja2 is an easy to understand but very powerful templating system. If you are familiar with Django, Jinja2 is very similar. In fact, the Django templating system is cited as what inspired Junja2. While not hard to understand, having worked with Django makes that a lot easier.

WTForms is a forms generating package that is also powerful but not complicated. It will take me less time to learn to use it then it would to hand-code the forms I need and the end result will be something I can maintain.

This particular project will run on “regular” computers but I can see using these tools for another project I have on my list that uses a Raspberry Pi. In the world of software bloat, it is nice to find things that “just fit”.