Ok, I've got it running finally....
The key is, in the wsgi daemon config to specify 1 process only.
Once I did that, and installed beaker (I've finally understood how to
use it. Unbelievable what 1 night of sleep can do) the sessions
worked.
My vhost wsgi config is now
WSGIDaemonProcess tmain.ath.cx processes=1 threads=15 display-name=%
{GROUP} user=tmo group=webdev home=/home/tmo
WSGIProcessGroup tmain.ath.cx
WSGIScriptAlias / /var/www/arc_en_ciel/htdocs/base.py
and my application starts with
import web, os, os.path, stat
from web import form
import sqlite3, StringIO, mimetypes
from beaker.middleware import SessionMiddleware
urls = (
'/' , 'login',
'/login/' , 'login',
'/upload/(.*)$' , 'upload',
'/newFolder/(.*)' , 'newFolder',
'/del/(.*)' , 'delete',
'/search/(.*)$' , 'search',
'/browse/(.*)$' , 'browse',
'/download/(.*)$' , 'download',
'/my(.*)' , 'home',
)
#DONE: login
#DONE: navigation dans le repository
#TODO: ajouter une page de changement des infos persos
#TODO: download des fichiers
#TODO: upload des fichiers
#TODO: indexage des fichiers uploadés
def init():
web.header("Content-Type","text/html; charset=utf-8")
session = web.ctx.environ['beaker.session']
if not 'initialized' in session:
session['logged']=False
session['msg']=''
session['user']=''
session['uid']=None
session['initialized']=True
session.save()
return session
#...
application = web.application(urls, globals()).wsgifunc()
application = SessionMiddleware(application, key='mysession',
secret='randomsecret')
cfg=config()
web.config.debug = cfg.debugMode
db=web.database(dbn='sqlite', db=cfg.finalDb)
rdr = web.template.render(cfg.tplPath)
class login:
'''
Let the users login
'''
def GET(self):
session=init()
web.debug(session)
return rdr.welcome(cfg.frmLogin, getMsg())
def POST(self):
session=init()
web.debug(session)
i=web.input()
ret=False
if i.username!='' and i.pwd!='':
ret=db.select('users',where='lower(username)=\'%s\' and password=
\'%s\''%(i.username, i.pwd))
cpt=0
for row in ret:
cpt+=1
uid=row.userid
if cpt==1:
session['logged']=True
session['user']=i.username
session['id']=uid
session.save()
web.redirect('/browse/')
else:
session['msg']='Erreur de connection.'.decode('utf-8')
session.save()
web.redirect('/login/')
else:
session['msg']='Pas de mot de passe spécifié'.decode('utf-8')
session.save()
web.redirect('/login/')
#...
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"web.py" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [email protected]
For more options, visit this group at http://groups.google.com/group/webpy?hl=en
-~----------~----~----~----~------~----~------~--~---