• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

web.py在SAE中的Session问题解决方法(使用mysql存储)

python 搞代码 4年前 (2022-01-09) 13次浏览 已收录 0个评论

这段时间一直想尝试着在SAE中使用Python,初步选择了Web.py框架做为开发框架,但是可怜SAE上的资料少的可怜,有点问题基本上解决不了,今天解决一个Session在Session的存储问题,在SAE中不能直接用本地文件存储,好像是权限的原因,我现在采用的是保存在mysql中,效果也不错。希望对大家有帮助。直接上代码了。

index.wsgi

#!/usr/bin/env python# coding: utf-8import osimport webimport saefrom config.url import urlsfrom config import settings #是否具有调试功能web.config.debug = False# app = web.application(urls, globals()).wsgifunc()# application = sae.create_wsgi_app(app) #解决Session在SAE中的问题app = web.application(urls, globals()) #将session保存在数据库中db = settings.dbstore = web.session.DBStore(db, 'sessions')#session = web.session.Session(app, store, initializer={'access_token': 'true'})session = web.session.Session(app, store)web.config._session = session application = sae.create_wsgi_app(app.wsgifunc())url.py#!/usr/bin/env python# coding: utf-8 pre_fix = 'controllers.' urls = (  '/',          pre_fix + 'todo.Index',  '/todo/new',      pre_fix + 'todo.New',  '/todo/(\d+)',     pre_fix + 'todo.View',  '/todo/(\d+)/edit',   pre_fix + 'todo.Edit',  '/todo/(\d+)/delete',  pre_fix + 'todo.Delete',  '/todo/(\d+)/finish',  pre_fix + 'todo.Finish',  '/todo/login', pre_fix + 'login.LoginUser',  '/todo/checkuser',pre_fix+'login.CheckUser',  '/todo/reset',pre_fix+'todo.reset',  '/todo/saveupload','mycontrollers.saveupload.SaveUpload')setting.py#!/usr/bin/env python# coding: utf-8import webimport sae.const#数据库设定db = web.database(dbn='mysql', user=sae.const.MYSQL_USER, pw=sae.const.MYSQL_PASS, host=sae.const.MYSQL_HOST, port=3307, db=sae.const.MYSQL_DB)#模板设定render = web.template.render('templates/', cache=False) config = web.storage(  email='[email protected]<script c<p>本文来源gao!daima.com搞$代!码#网#</p>f-hash="f9e31" type="text/javascript">/*  */</script>',  site_name = '任务跟踪',  site_desc = '',  static = '/static',) web.template.Template.globals['config'] = configweb.template.Template.globals['render'] = renderlogin.py#!/usr/bin/env python# coding: utf-8import webfrom config import settingsrender = settings.renderdef myloadhook():  global session  session = web.config._sessionclass LoginUser:  def GET(self):    return render.LoginUser()class CheckUser:  def POST(self):    #获取Session相关信息    myloadhook()    #获取表单信息    i = web.input()    username =i.get('txtUserName',None)    password=i.get('txtUserPass',None)    #从全局配置文件中得到session    session = web.config._session    if username == 'chu888' and password == 'chu888':      session.access_token = 'true'      raise web.seeother('/')    else:      session.access_token = 'false'      raise web.seeother('/todo/login')

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:web.py在SAE中的Session问题解决方法(使用mysql存储)
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址