David.Bear at asu.edu
Thu Jun 14 18:49:44 EDT 2007
On Wed, Jun 13, 2007 at 04:15:38PM -0400, Jim Gallacher wrote: > Hi David, > > David Bear wrote: > >When is the req object made available? > > > Think of the handler method as the entry point into your code for each > request. > > Consider the simplest possible handler as an example: > > AddHandler mod_python .py > PythonHandler helloworld > > > helloworld.py > ------------- > > from mod_python import apache > > MSG = 'Hello world' > my_sum = 10 + 10 > > def handler(req): > req.content_type = 'text/plain' > req.write(MSG) > return apache.OK > > Note that the statement my_sum = 10 + 10 is only executed once, not > every time a new request arrives. Same for MSG and our initial import > statement. OK. Great. So, my_sum = 10 + 10 is executed when apache loads and reads helloworld.py the first time -- and upon any subsequent module reloads? This makes sense to me.. is it correct? What if helloworld.py imported another module named goodbye.py that had this: goodbye.py ----------- newvar = 10 + 10 def coolfunc(somestring): backwards = somestring.split() backwards.reverse() return(backwards) If I understand, when helloworld is imported, any imports it does will also be executed -- and then any expressions in the imported modules will ALSO be evaluated when they are imported. So, newvar will be evaluated when helloworld is imported by apache -- but coolfunc won't do anything untill it is called presumably by helloword.py. Am I approaching correctness here? > > > -- David Bear phone: 602-496-0424 fax: 602-496-0955 College of Public Programs/ASU University Center Rm 622 411 N Central Phoenix, AZ 85007-0685 "Beware the IP portfolio, everyone will be suspect of trespassing"