|
|
| | Ask HN: Choosing a Python framework for web development? | |
38 points by aneel99 on April 3, 2008 | hide | past | favorite | 39 comments
|
| | Hi all,
I'm new to programming and started developing software using Python around 6 months back. I also know a bit of C#, C, JavaScript, HTML and CSS. Not an expert in any thing, still learning. Also, I'm not very good at Regular Expressions--this was a new-year resolution ;)
Now I've come across a dilemma and find myself completely stumped. I cannot figure what Python web-framework I should choose to start developing web-based software using Python. I've looked at the websites of Django, Pylon, CherryPy and WebPy--and I couldn't decide ;( Considering my naive skills I intend to choose a lightweight framework and a framework with which I can easily use JavaScript for client-side scripting (my biggest fear). I think I'm in a company of some very smart people here so I will really appreciate if you can help me in choosing an appropriate framework--considering my skill-set. Thanks in advance, fellas. |
|
Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact
|
1.) Previous skills with Mako, SQLAlchemy, Paste, or any of the other libraries that Pylons or Turbogears is based upon.
2.) Previous code in one of the above libraries
3.) Functionality needs that Django cannot satisfy in at least a couple of the following areas: authentication, user models, multiple database support, template extensibility, deployment. I say "at least a couple" because if you just need one, you can import it like you would in any other framework. The price is that many existing Django add-ons won't be aware of your choice.
Bad reasons include:
1.) "Django's only for CMSes." Not true; it works just as well for anything that involves web apps, including AJAX apps.
2.) "It's not scalable enough." The Washington Post runs on Django; I doubt you're going to get more pageviews than them.
3.) "My data doesn't easily fit in the relational paradigm." That's what the import statement is for; you can hook any data source you want up to a Django view.
4.) "Django's templating language is too restrictive." That's what template tags are for.
5.) "I'm really doing a full-fledged AJAX app, not a website." You can output JSON or XML data from a Django view as easily as HTML, and you're not limited to any particular JavaScript library. (I actually think Django views are more convenient for this than Pylons controllers; there's less boilerplate.)