Writing web applications in Python and Pyramid Web Framework
pyramid-blogr.readthedocs.org
pyramid-blogr.readthedocs.org
My own fault given that I'd only built a couple of small apps on it before, but it does show that it's quite difficult to get into without knowing Pylons/zope/repoze or one of it's other forerunners.
Since i did a flask tutorial, pyramid doesnt feel harder to work with at any point.
Tornado 4,551
Flask 4,019
Bottle 1,381
Pyramid 876
EDIT: Just adding some figures to the debate.
I'd rather compare by design decisions than meaningless numbers.
Statistics like this are silly because they rely on people actually wanting to use GitHub and I don't feel the Pyramid community of developers really cares that much for it outside of being a host of the repository.
BTW, I've been a long time Pyramid user (since the Pylons days) and can't be happier with my choice.
Also first stable and known framework with full python 3.x support
Flask is easier to learn and you could probably master it. It is well suited to projects with a smaller scope. (I leave it to you to decided how small is small, and how big is big. There is no clear cut line.)
Pyramid's documentation has been -- relative to Flask -- difficult. I know that the Pyramid team has been working to improve the documentation and the linked page looks like part of that effort.
The name Pyramid dates to 2010, prior to which it was know as repoze. It has even deeper roots and includes ideas and code from many prior projects: Zope, Plone, Grok, Pylons and probably more. However, working with Pyramid is more like Flask than Zope, more of a lightweight framework than a giant monolith. It is my understanding that Pyramid can draw on a much larger set of tools to build complex websites that require complex security, workflows, scalable servers, etc.
Pyramid used to be known as repoze.bfg or just bfg. It made liberal use of modern "light-weight" framework architecture decisions along with much more advanced and flexible workflows and code introduced through other repoze.* libraries (from Zope).
In general though, I agree that Pyramid is well suited for large projects and ill-suited for small ones. Although I do use it for my small projects.
Which really shows the power of Pyramid.
Flask and Bottle have Authentication and Authorization extensions but they just aren't as flexible or as powerful as Pyramids.
A lot of the power of Pyramid (especially the security system baked in) comes from its long history and the large applications built on top of Zope, Pylons, and repoze. The knowledge and experiencing coming from those frameworks shines through when you start building something larger than a blog or todo list and you have "real world" requirements.
Also, the amount of tests, documentation, and hard work that goes into supporting Python3 are great benefits of using Pyramid.
Pyramid has come off as a very well engineered framework from the get go since I started using it 1.5 years ago.
1) pyramid does not have a bad documentation. you just don't know where to start. the pyramid documentation is at http://docs.pylonsproject.org/en/latest/docs/pyramid.html and pyramid tutorial is at http://docs.pylonsproject.org/projects/pyramid/en/1.4-branch.... as a beginner, you will want to start with the tutorial. the documentation will give you the full knowledge about pyramid and every single thing in it.
2) pyramid does not have anything to do with zope other than its transaction extension. uhm and some core developers being ex zope devs. repoze.bfg had. after the merge between pylons and repoze.bfg pyramid was born. it merged the code base of repoze.bfg and the philosophy of pylons.
3) pyramid is not just a framework. it is a framework with which you can build your own framework as well or enjoy it like the way it is.