This shows you the differences between two versions of the page.
|
pylons [2010/06/06 02:20] 207.68.153.156 KgZYRcjTdfseq |
pylons [2010/06/06 11:10] (current) twk old revision restored |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | 18kEUj <a href="http://xhgqxnehisfc.com/">xhgqxnehisfc</a>, [url=http://wxnvdwurggcy.com/]wxnvdwurggcy[/url], [link=http://lhpbdugtytgo.com/]lhpbdugtytgo[/link], http://ciryageieltu.com/ | + | ===== Overview ===== |
| + | |||
| + | [[http://www.pylonshq.com/|Pylons]] is a Python "glue" web framework, focused around combining several "best of breed" libraries together in a single integrated package. By default, it uses [[Mako]] for templates, [[SQLAlchemy]] for ORM, [[Routes]] for request dispatching, [[setuptools]] for deployment, and [[Beaker]] for sessions. It's also possible to switch in other components as desired. | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ===== Case Studies ===== | ||
| + | |||
| + | * BitTorrent.com was built on Pylons. Performance was decent, and we were reasonably satisfied with the framework. | ||
| + | |||
| + | ===== Gotchas ====== | ||
| + | |||
| + | * Because every Pylons controller is a WSGI app and WSGI requires that functions have a specific signature, information is passed between them through global variables. However, a naive global wouldn't be threadsafe, and so Pylons uses "stacked object proxies" for the c, g, session, req, etc. variables. This makes it very difficult to inspect the Pylons request state through dir(), vars(), or other Python debugging tools. | ||
| + | |||
| + | ===== Tips & Tricks ===== | ||
| + | |||
| + | |||
| + | |||
| + | ===== Alternatives ===== | ||
| + | |||
| + | * [[Django]] | ||
| + | * [[web.py]] | ||
| + | * [[TurboGears]] | ||
| + | * [[Rails]] | ||
| + | |||
| + | ===== Other Resources ===== | ||