views:

429

answers:

4

I am python newbie from the asp.net MVC world, looking to start a new web application project in python.

How do I go about choosing a web application framework in python? Python website points to a lot of frameworks. So much that I am confused to the core.

I have some rudimentary knowledge about the frameworks. Here’s based on what I know

  • Django. Most popular but highly restrictive. Components are not interchangeable and tends to get complex along the way.
  • Web.py. Though not popular, appreciated by the folks who have used it.

I want a framework that removes all of the plumbing work and helps me get the work done easily minimal in LOC. I also value community support (since being a newbie to this language, I don’t want to get stuck ½ a day fixing a weird problem that only 5 people using the framework know).

Asp.net does not have liberally licensed frameworks which provide all the additional parts to eco system like authorization, roles, cms features like permissions. A lot of these things that you need but don’t want to focus your energy building. So a framework which provides all these facilities is definitely something I am looking out for.

Can someone help me?

+6  A: 

I would recommend Pylons, it's more customizable and intuitive personally than Django, and instead of proprietary components for say, an ORM, the ideal setup is using best of breed components, so you can use say, Mako for templating.. SQLAlchemy for ORM, you can have your own routing component or use the built-in one, I like this type of philosophy because if you already work with these components and start using it, you don't need to learn anything new.

Also, there's less work to be done by the core pylons developers and instead of wasting time on side components such as ORM/templating they can just concentrate on the core, whereas an entirely different team concentrates on those side components and by concentrating on different parts, overall in my opinion it rivals and surpasses Django.

meder
+2  A: 

I'm in exactly the same boat, and I found that the Pylons approach is the most similar to .NET MVC. It has good support, though arguably not as comprehensive as the .NET world.

Even if you choose Pylons, you still have a lot of choices to make, but they recommend using Mako as the template engine (which will feel familiar to you coming from .NET MVC), and SQL Alchemy as the ORM.

Pylons Home Page

Noah Heldman
+7  A: 

If you're just getting started with Python and want to get a working site with the minimum LOC, I would highly recommend Django.

One of the biggest advantages of Django for someone new to python is the excellent documentation. The Django Book is a great way to dive in and get familiar with the framework while building a working application, and the official documentation is extremely useful as well. Of course there are a lot of other great things Django does, but I think if you're choosing between new frameworks to learn the quality of the documentation should be one of your top criteria.

Zach Bialecki
+1  A: 

I don't think Django is nearly as restrictive as some folks make it out to be. Any framework you select will be a trade off between your ability to forge your own path and the need to reinvent the wheel. For the purposes you describe, Django certainly seems like the right approach.

It might be worth your while to look at this SO post, myself and others share some more "philosophical" thoughts on frameworks there that you might find useful.

Matt Baker
nice answer... :)
presario