Jim Steil
jim at qlf.com
Wed Jan 4 18:07:23 EST 2006
Jim: Thanks for the info. However, I'm still having trouble. I don't know if this is the problem, but this code does NOT exist in a handler that I wrote. I didn't write a handler, I'm just using the publisher handler. I have written an authentication handler and that is working correctly but I don't know what I need to do to make my own handler and have it work like the publisher handler. Again, I'm probably trying too hard and not seeing the obvious. I have been looking all over the web and can't seem to find a good custom handler example. Thanks again, I'll keep plugging away to try to understand what's going on. -Jim Jim Steil IT Manager Quality Liquid Feeds (608) 935-2345 Jim Gallacher wrote: > Jim Steil wrote: >> Hi, I'm new to mod_python and apache in general, and am confused >> about how to implement session management. I'm using the Publisher >> handler and PSP templates. >> >> Here is the relevant portion of my http.conf file: >> >> <Directory "c:/program files/apache group/apache2/htdocs/motion"> >> AddHandler mod_python .py >> PythonHandler mod_python.publisher >> PythonAuthenHandler myAuthScript >> PythonDebug On >> AuthType Basic >> AuthName "Restricted Area" >> require valid-user >> </Directory> >> >> ...and here is my python module: >> >> from mod_python import psp >> >> import time >> import mx.ODBC >> import mx.ODBC.Windows >> >> def secUserList(req, page='', sortSeq=''): >> if page: >> startPage = int(page) >> else: >> startPage = 1 >> pageLength = 20 >> sql = 'call secUser_list(\'' + sortSeq + '\', ' + >> repr(startPage) + ', ' + repr(pageLength) + ')' >> db = >> mx.ODBC.Windows.DriverConnect('DSN=motion;UID=userid;PWD=password') >> c = db.cursor() >> c.execute(sql) >> htmlText = '' >> for secUserId, firstName, lastName, logonName, email in c.fetchall(): >> htmlText = htmlText + '<tr >> onmouseover="style.backgroundColor=\'#FFF0AF\'; >> style.cursor=\'hand\';" >> onclick="location.href=\'secUserProfile?secUserId=' + "%i" % >> secUserId + '\'" >> onmouseout="style.backgroundColor=\'#ffffff\';"><td>' + firstName + >> '</td><td>' + lastName + '</td><td>' + logonName + '</td><td>' + >> email + '</td></tr>\n' >> previousPage = 1 >> if startPage > 1: >> previousPage = startPage - 1 >> nextPage = startPage + 1 >> c.close() >> db.close() >> parmDict = {'title':'User List', 'rowHtml':htmlText, >> 'previousPage':previousPage, 'nextPage':nextPage, 'startPage':startPage} >> template = psp.PSP(req, filename='secUserList.html') >> template.run(vars = parmDict) >> >> >> My question is; How do I implement the session? > > from mod_python import Session > > Where do I put the >> code? > > Most likely in your handler, (secUserList?) but it can go where ever > you want to access the session data. Make sure you only create one > session object per request though. If you need to pass it around to > other functions in a single request then stuff it into your request > object. > > def secUserList(req): > > # creating the session instance will either load an existing session > # or create a new one > req.sess = Session.Session() > if req.sess.is_new(): > req.sess['visits'] = 0 > > req.write('you have visited this page %d times' % > req.sess['visits']) > > doSomeOtherStuff(req) > req.sess['visits'] += 1 > > # You must save the session to make it persistent > req.sess.save() > > def doSomeOtherStuff(req): > req.sess['stuff'] = 'wonderful' > > >> I want to be able to store my database login credentials in the >> session object. I'm guessing I'm missing something really obvious, >> but can't seem to get my head around it. > > Don't think so hard. ;) It really is as simple as it looks. > >> Any help or pointers to good examples would really be appreciated. > > Just think of the session object as a persistent dictionary. The > correct dictionary to load for a request is determined by a cookie > which is automatically set for you when you create the session. > > Jim > > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mm_cfg_has_not_been_edited_to_set_host_domains/pipermail/mod_python/attachments/20060104/7023d287/attachment.html
|