<div dir="ltr"><br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div dir="ltr"><div style="font-family:arial,sans-serif;font-size:13px">
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.</div>
<div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">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.</div>
<div style="font-family:arial,sans-serif;font-size:13px">and</div><div style="font-family:arial,sans-serif;font-size:13px">does my plan of learning Web2Py is good for Web development and getting involved in the big projects like Django , MoinMoin Wiki , Plone.</div>
<div><br></div>
</div>
</blockquote></div><br></div><div class="gmail_extra"><div class="gmail_extra"><div class="gmail_extra">Each web framework is kind of its own niche. I wouldn't learn one for the</div><div class="gmail_extra">purpose of learning another. For example to use Django effectively requires</div>
<div class="gmail_extra">knowledge specific to Django. Aside from some casual similarities between</div><div class="gmail_extra">various web frameworks they're all pretty different. If you feel comfortable</div><div class="gmail_extra">
with web2Py and it does what you need - use the heck out of it!</div><div class="gmail_extra"><br></div><div class="gmail_extra">I've heard good things about Web2Py but not used it myself.</div><div class="gmail_extra">
<br></div><div class="gmail_extra">I used Django for a while but found it to usually be over complicated for most</div><div class="gmail_extra">of my needs. In other areas it wasn't advanced enough. (For instance I had an</div>
<div class="gmail_extra">unusual requirement once for composite foreign key support, something Django's</div><div class="gmail_extra">ORM couldn't handle at the time. I also disliked the template language. By the</div>
<div class="gmail_extra">time I replaced the ORM and the template language the only thing I was really</div><div class="gmail_extra">using was the URL routing so I jumped ship. (Don't get me wrong, I know</div><div class="gmail_extra" style>
people who love Django - just not me.)</div><div class="gmail_extra"><br></div><div class="gmail_extra">Cherrypy is neat but I found it to be more spartan than I prefer. I've since</div><div class="gmail_extra">settled on Flask with SQLAlchemy and am liking it very much. It's a nice middle</div>
<div class="gmail_extra">ground. It also has extensive documentation and example files too. Of course it</div><div class="gmail_extra">really helped that I already knew SQLAlchemy, thus pairing it with Flask was</div><div class="gmail_extra">
cake.</div><div class="gmail_extra"><br></div><div class="gmail_extra">While not a web framework, learning SQLAlchemy is useful in its own right</div><div class="gmail_extra">because it can be used in a wide variety of projects and is used by some web</div>
<div class="gmail_extra">frameworks. It's also an excellent package that lets you use most of the</div><div class="gmail_extra">features of your specific database backend. For web apps staying abstract is</div><div class="gmail_extra">
usually a good idea, but honestly how often do you change SQL backends? I think</div><div class="gmail_extra">I've done it once in my career. I've found the advantage of using database</div><div class="gmail_extra">
specific features generally outweighs the drawbacks. This is especially true if</div><div class="gmail_extra">you have more than one client/website accessing the same database. SQLAlchemy</div><div class="gmail_extra">gets me the best of both worlds. I can define check constraints and enumerations</div>
<div class="gmail_extra">and all the other goodies and have them match between database clients.</div><div class="gmail_extra"><br></div><div class="gmail_extra">If you don't already know this from scientific computing, learning some raw SQL</div>
<div class="gmail_extra">is quite useful too! Sometimes you need a non-trivial query.</div><div class="gmail_extra"><br></div><div class="gmail_extra">-Modulok-</div></div></div></div>