Pharaoh Logo
Pharaoh

What you will find here

Pharaoh is about programming a web application in Python with the framework Pyramid.

It contains articles that describe the steps I took to build this website. They describe the tools used, eventually some background information about what these tools do, and the architectural decisions I made. Pyramid, as you will see, allows you to design your application in several different ways and imposes almost no restrictions on how you organize your code.

I have several years experience in developing a business intranet, that eventually nearly became an ERP system. This experience guides the design decisions I made, and which the following articles describe.

A list of the articles you find below. Updated 2011-09-14

This is a work in progress and has started in June 2011

Why it is here

After being active in web development in PHP for many years, switching to Python and the available frameworks here turned out to be quite a paradigm shift. I was used to build MVC web applications in PHP and also developed my own framework Parenchym, which (of course) had many comfortable features for my kind of work and thinking. So it is quite natural that I was looking for a Python framework that offers me at least the same possibilities. If not more.

From time to time I had been eyeing Django and Turbogears, but only recently a direct need to use Python appeared. The first framework I used was web2py and the start was promising. But then I had to pursue a bug and digged deeper into the code which (at least in the DB library) appeared to be overwhelmingly monolithic and even mixed GUI code with database code -- which I disliked much.

Then there was Pyramid, a rather new framework that resulted from a merge of Pylons and RepozeBFG.

One could almost say, it was love on the first sight (yeah, right ;) Documentation was overwhelming but my intuition told me, all wanted and more components were available (more on that in the articles). The learning curve for me was and still is high. Pyramid consists of and uses many modules which have extensive possibilities in themselves, starting with virtualenv and setuptools, via various libraries of Zope provencance to (but not ending with) SqlAlchemy. Not to speak about that mind-warping routing mechanism "traversal", which nonetheless caught my interest and about which we will hear more later on.

In short, manymanymany manual pages to read, new concepts to understand -- I need a laboratory where I can try out all these things and also have the possibility to keep a log about my experiences and best practices.

Here comes Pharaoh.

Having a small web application in mind, with the capability of publishing articles, seems to be an achievable goal. And new features with accompanying articles will be published in loose sequence.

Later on I will publish the code on github.

June, 2011

Dirk

blog comments powered by Disqus