web.py 的session 没法使用吗?

web.py 的session 没法使用吗?

小罗快飞

来自: 小罗快飞 2011-12-15 10:03:42

问题解决了,感谢 rosickey 的支持


app_root = os.path.dirname(__file__)
app = web.application(urls, globals()).wsgifunc()


db = web.database(dbn='mysql', host=sae.const.MYSQL_HOST,port=int(sae.const.MYSQL_PORT),user=sae.const.MYSQL_USER, pw=sae.const.MYSQL_PASS, db=sae.const.MYSQL_DB)

store = web.session.DBStore(db, 'sessions')

session = web.session.Session(app, store, initializer={...保密...})

想请教下为啥到了session 这句在SAE就会报错呢?在本机使用的时候完全正确。数据库部分也跟本机配置一样的呀。

下面是错误信息:

AppError: Module can't be imported
Traceback (most recent call last):
File "/data1/www/htdocs/555/appname/3/index.wsgi", line 26, in <module>
session = web.session.Session(app, store, initializer={...保密...})
File "/usr/local/sae/python/lib/python2.6/site-packages/web/session.py", line 63, in __init__
app.add_processor(self._processor)
AttributeError: 'function' object has no attribute 'add_processor'

根据错误信息,是说没有 'add_processor' 这个函数吗?那怎么用呀 ?

在文档看到了有说明:

Python限制
•进程,线程操作受限
•除临时文件,应用自身所在目录外,不可访问本地文件系统

跟这个有关系吗?


问题解决了~~~~~~~~~~~~步骤如下:

1、
将: app = web.application(urls, globals()).wsgifunc()
改成:app = web.application(urls, globals())

2、
将: application = sae.create_wsgi_app(app)
改成:application = sae.create_wsgi_app(app.wsgifunc())

你可能感兴趣的:(web.py 的session 没法使用吗?)