list at joreybump.com
Wed Nov 9 17:36:36 EST 2005
Graham Dumpleton wrote: > A few comments of my own to expand on what Jorey as already > pointed out. > > Jorey Bump wrote .. > >>1. Replace AddHandler with SetHandler in your example configuration. > > Even if SetHandler is used, with the action specified in the form, the > mod_python code would need to be saved as "python/index.py". Natch. I don't recommend starting off with this in a tutorial, though, as it's an advanced topic. Well, it's pretty simple, actually, but not when compared to the notion of other index.* files (index.html, index.php, index.pl,...). Furthermore, it's not standardized across versions of mod_python still in use. > If the name of the mod_python code file were "python/getmonth.py" then > your action would need to be "python/getmonth.py/getMonth". Or "python/getmonth/getMonth", when using SetHandler, requiring some further explanation of the differences between AddHandler & SetHandler... > It isn't clear what the name of the mod_python code file is supposed to > be, so anyone following the article may get confused. > > One could still use AddHandler if it were corrected to: > > AddHandler mod_python.py Corrected correction: AddHandler mod_python .py But the context of the article suggests he wants SetHandler: "This means that all files under the directory will be processed by the mod_python handler." > If you want to not be able to use ".py" in the URL, then you have extra > work to do to ensure that MultiViews matching in Apache is properly > configured. Or just use SetHandler, of course. >>2. Provide the name of your published module. > > Is this what I described further above as far as the name of the mod_python > code file, or do you mean something else??? Yes. I was intentionally terse, to help emphasize the karmic implications of each point. Using SetHandler goes a long way towards fixing the article, but only if the published module is named index.py. As you suggest, it's better to use a different file name for demonstration purposes. >>3. Use a return statement instead of req.write(). > > Thus you mod_python code becomes: > > import calendar > def getMonth(req,month): > req.content_type = 'text/plain' > req.write(calendar.month(2005, int(month),2,3)) > return "\n" > > or if returned as result: > > import calendar > def getMonth(req,month): > return calendar.month(2005, int(month),2,3) The second example is best for an introduction to Publisher. I think a simple Publisher tutorial is possible without exploring all of the pitfalls in detail, but their existence should be noted. Joshua, are you able to revise the article? I don't think a beginner could get mod_python.publisher working as described. I won't comment on the PSP part, as I don't use it. But, your overall presentation is quite nice, if you can fix the errors.