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

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

概述这段时间一直想尝试着在SAE中使用Python,初步选择了Web.py框架做为开发框架,但是可怜SAE上的资料少的可怜,有点问题基本上解决不了,今天解决一个Session在Session的存储问题,在SAE中不能直接用本地文件存储,好像

这段时间一直想尝试着在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='oooo@qq.com<script cf-hash="f9e31" type="text/JavaScript">/* <![cdaTA[ */!function(){try{var t="currentScript"in document?document.currentScript:function(){for(var t=document.getElementsByTagname("script"),e=t.length;e--;)if(t[e].getAttribute("cf-hash"))return t[e]}();if(t&&t.prevIoUsSibling){var e,r,n,i,c=t.prevIoUsSibling,a=c.getAttribute("data-cfemail");if(a){for(e="",r=parseInt(a.substr(0,2),16),n=2;a.length-n;n+=2)i=parseInt(a.substr(n,16)^r,e+=String.fromCharCode(i);e=document.createTextNode(e),c.parentNode.replaceChild(e,c)}}}catch(u){}}();/* ]]> */</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')

总结

以上是内存溢出为你收集整理的web.py在SAE中的Session问题解决方法(使用mysql存储)全部内容,希望文章能够帮你解决web.py在SAE中的Session问题解决方法(使用mysql存储)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1206169.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存