Dave Britton
dave at davebritton.com
Wed Jan 18 08:41:39 EST 2006
I currently use mod_python to provide a database-driven web site for a class I teach at City College. With no concern for fancy presentation issues, the site needs an easy way to prepare and deliver and grade class assignments online, in which each student's assignment is personalized (or at least randomized to be individual). The publisher handler is all I am using at the moment, since it is easy and works well, although I expect to add Graham's Vampire system soon for added functionality. Python with mod_python has been fast, flexible and powerful for this purpose so far. The specific "how" is pretty vanilla compared to what I read in this list: 1) I like to put the whole application in one module, different functions of which are called by each page, so the structure or pattern is 2) to collect the incoming cgi variables (which is convenient with mod_python), 3) open the database with MySQLdb, 4) figure out whatever needs figuring out with python code, and 5) construct the html output string in the process, using forms to pass cgi intemediate information, especially any session-like page-to-page persistent information, as hidden variables, with the html form ACTION usually being a function in the application module. Then 6) close the database and 7) return the html string and 8) wait for the user to fill in a form and/or click a form button on the delivered page so we can do it all again. I've done several other web-based applications in this fashion before. One particularly useful aspect of it is the ability to dynamically create complex javascript when required. Another application used mod_python in combination with ZSI SOAP to dynamically deliver an application that ran on the local webserver but enabled retrieval and update of a remote vendor's database. I'm using older versions of apache and mod_python (1.3/2.7) for this current classroom application because I haven't gotten the spacetime to upgrade (I've been through that process before and it isn't easy enough to take lightly) so fancy modern conveniences like Session are still in the future. I'm starting a new application to manage a huge database of neurophysiology research data which may involve figuring out how to do things like database connection pooling and running lengthy background processing jobs (possibly on other machines) that will let you check their status and control them by web page. Overall the "how I use mod_python" answer is to stay straight up out of the box, no messing with it, try to zen out what it likes to do and use it that way. -Dave ----- Original Message ----- From: "Daniel Nogradi" <nogradi at gmail.com> To: <mod_python at modpython.org> Sent: Wednesday, January 18, 2006 6:50 AM Subject: [mod_python] How do you use mod_python? > Some time ago there was a post (I think by Grisha) asking "why are you > using mod_python?". It would be interesting to see answers from many > users to a related question, _how_ do you use mod_python? > > A little more specifically, the various ways of using mod_python that > I have in mind (which list is very much limited by my knowledge) > include > > (1) writing custom handlers for every new project > (2) writing a universal handler which serves various unrelated projects > (3) using the publisher handler for every project > (4) tweaking the publisher handler for every new project in different ways > (5) using the publisher for some of the projects but writing new > handlers for others > > And of course there could be many more ways of using mod_python that > just didn't come into my mind at the moment or don't even know about > it. > > So, after all, how do you use mod_python? > > _______________________________________________ > Mod_python mailing list > Mod_python at modpython.org > http://mailman.modpython.org/mailman/listinfo/mod_python > >
|