notes from a coder assembling a python web framework

i had this file on my desktop for a while and thought it was time to move it from there, and for some reason it came to my mind that its worth publishing the result of our search.
i’m too lazy to linkify everything here, but every second word is a link to some open-source
project.
components for our new python web framework:
big things to look at:
———————-
* Pylons - currently leading (uses mako, sqlalchemy, routes)
* Django
* TurboGears
* CherryPy - framework including webrick-like-environment, url-mapper, sessions, caching…
Object Relational Mapper:
————————-
* SQLObject - looks beautiful at start
working with objects and result-sets looks fun
hides SQL from you
creates tables for you
creates Many-to-many relationship tables for you, hides them from you
constructing queries is a bit clumsy
if u want to use GROUP-BY u need to use SQLBuilder
* looks like they put more effort into beauty rather than usability, specifically
 in creating queries and dealing with non-tabli’sh result-sets
* SQLAlchemy - looks annoying to begin with
table creation is separate from table class definition, so we get duality (solved with
Elixir)
they still create the tables for u
constructing queries is awkward, but i guess they are all like this
one-to-many looks nice, still funny query syntax but no sql and u get nice objects
it looks like for making complex queries (joins, from(select), etc) will require reading
   the docs all the time
Templating Engine:
——————
* Mighty (used by Amazon, delicious) (ported from Mason in perl)
* Mako (V), Genshi, Jinja, Kid, Cheetah (V), Buffet?
URL-Mapper (nice urls, command mapper, parameter validator, etc):
—————————————————————–
* Routes (from Pylons perhaps?) - looks nice, want to see how it actually calls my objects once it maps stuff.
things to remember:
——————-
* how do we connect to web-servers ? try to keep it open, allow something like webrick
  for easy testing
* cookies, http-errors, sending back headers, etc

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>