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())