Tutorial participants will build a real-world web application rapidly using lightweight tools, such as Flask, Jinja2, MongoDB, and Twitter Bootstrap. By building the apps from scratch using tools whose size matches the task at hand, participants will be able to churn out working applications by the end of the tutorial that can solidify their Python and modern web dev knowledge.
When new Python programmers decide to build a web application with Python, they generally default to one of the "big & popular" web frameworks -- such as Django, Pylons, or web2py.
These frameworks, however, lead to more questions than answers -- for example, due to framework magic or excessive configurability, it can be difficult to get into a productive flow without overcoming a steep learning curve.
Further, most traditional Python web frameworks are backend biased -- that is, most of the framework is focused on how to structure your Python business logic, rather than focusing on how to build beautiful, cleanly designed, and functional web UIs that illustrate a "proof-of-concept" to real users.
This tutorial will flip that dynamic on its head by walking participants through web prototyping using lightweight frontend and backend tools. We'll build a Python web application controller with Flask, store our data in MongoDB, template our front-end pages with Jinja2, and implement a clean look-and-feel using Twitter Bootstrap.
By focusing on small, lightweight tools and chaining them together piece-by-piece, we will solidify our knowledge not just of general Python, but also of full stack web development. For that reason, this tutorial is particularly well-geared toward Python novices.
By the end of the tutorial, the instructor will ensure participants of all backgrounds can deliver working web applications in Python with minimal code and maximum understanding.
The last portion of the tutorial will offer an "upgrade path" for your applications after they graduate from prototype stage. We will discuss the relative strengths and weaknesses of:
Update: See updated tutorial preparation instructions at Rapid Web Prototyping with Lightweight Tools