Today, I am teaching a tutorial at PyCon called “Rapid Web Prototyping with Lightweight Tools.” I’ll update this post with how it went, but here are the materials people are using for the course.
- Video Recording
- Slides (web)
- Slides in Note Form (Github)
- Slides (SpeakerDeck)
- Code (git)
- Code (zip)
- pip requirements
The tutorial is hands-on and code-oriented, building upon the viewpoint I laid out in my “Build a web app fast” post from last year.
It selects some lightweight tools for building a web app such as:
- Twitter Bootstrap
- jQuery
- LiveReload
- Flask
- Jinja2
It combined that with a lightweight database (MongoDB) and a small but production-ready UNIX-based deployment stack (supervisor, uWSGI, nginx). Code is finally pushed to live servers using fabric.
Throughout the tutorial, live rapid prototyping tools like IPython Notebook, CodeMirror, and Emmet are used, as well as good old pen-and-paper.
I gave this talk as a fundraiser for a startup hub in Charlottesville, VA, and it raised over $1,000. At PyCon, the tutorial is raising money for the Python Software Foundation, IMO one of the most important open source foundations out there.
But more importantly, this tutorial teaches programmers how to rapidly go from idea to prototype to deployed web application with minimal magic and minimal effort. Most fledgling startup hackers who reach out to me are looking for this kind of material, so I hope to turn it into a multi-part blog series (perhaps ebook) soon. More to come!
The multitude of different frameworks is both exciting and a little overwhelming. What are your thoughts on Pyramid? I have done some quick prototypes using Flask and Django, and just created a starter project in Pyramid. I really like the simplicity of Flask, but the Django auto generated admin interface is simply awesome. Pyramid purports to be light weight but still powerful enough to provide auto-generated admin interface “out of the box*” [*with a couple of extensions, namely SQLAlchemy and FormAlchemy]. Have you worked with Pyramid at all or explored the various ways of doing auto-generated admin outside of Django?
Well, Flask also has “automatic” administrative interface in form of Flask-Admin extension.
See here: http://flask-admin.readthedocs.org/en/latest/quickstart/
This is an extraordinarily helpful tutorial! Many thanks for the effort you put in.