> I have learnt python and used it for various purposes for scietific > computing using sage and GUI development using Tkinter and lots more. I > want to start web development using python My goal is to learn the web > development in python from the basic level and understand the big web > development projects like Django , MoinMoin Wiki , Plone and network > programming further with twisted. > > I have found Web2Py to be an easy library to quickly use and develop the > web application. Is there any other library to start my development with. > and > does my plan of learning Web2Py is good for Web development and getting > involved in the big projects like Django , MoinMoin Wiki , Plone. > > Each web framework is kind of its own niche. I wouldn't learn one for the purpose of learning another. For example to use Django effectively requires knowledge specific to Django. Aside from some casual similarities between various web frameworks they're all pretty different. If you feel comfortable with web2Py and it does what you need - use the heck out of it!
I've heard good things about Web2Py but not used it myself. I used Django for a while but found it to usually be over complicated for most of my needs. In other areas it wasn't advanced enough. (For instance I had an unusual requirement once for composite foreign key support, something Django's ORM couldn't handle at the time. I also disliked the template language. By the time I replaced the ORM and the template language the only thing I was really using was the URL routing so I jumped ship. (Don't get me wrong, I know people who love Django - just not me.) Cherrypy is neat but I found it to be more spartan than I prefer. I've since settled on Flask with SQLAlchemy and am liking it very much. It's a nice middle ground. It also has extensive documentation and example files too. Of course it really helped that I already knew SQLAlchemy, thus pairing it with Flask was cake. While not a web framework, learning SQLAlchemy is useful in its own right because it can be used in a wide variety of projects and is used by some web frameworks. It's also an excellent package that lets you use most of the features of your specific database backend. For web apps staying abstract is usually a good idea, but honestly how often do you change SQL backends? I think I've done it once in my career. I've found the advantage of using database specific features generally outweighs the drawbacks. This is especially true if you have more than one client/website accessing the same database. SQLAlchemy gets me the best of both worlds. I can define check constraints and enumerations and all the other goodies and have them match between database clients. If you don't already know this from scientific computing, learning some raw SQL is quite useful too! Sometimes you need a non-trivial query. -Modulok-
-- http://mail.python.org/mailman/listinfo/python-list