我跟随this Tutorial测试我的MySQL网页.py设置。在
由于本教程没有完整的源代码,我将我的源代码发布在这里:
import web
import MySQLdb
web.config.debug = False
urls = (
'/login', 'Login',
'/reset', 'Reset',
)
app = web.application(urls, locals())
db = web.database(dbn='mysql', db='dbname', user='user', pw='password')
store = web.session.DiskStore('sessions')
session = web.session.Session(app, store,
initializer={'login': 0, 'privilege': 0})
def logged():
if session.login==1:
return True
else:
return False
def create_render(privilege):
if logged():
if privilege == 0:
render = web.template.render('/Users/me/Desktop/cpage/Templates/reader')
elif privilege == 1:
render = web.template.render('/Users/me/Desktop/cpage/Templates/user')
elif privilege == 2:
render = web.template.render('/Users/me/Desktop/cpage/Templates/admin')
else:
render = web.template.render('/Users/me/Desktop/cpage/Templates/communs')
else:
render = web.template.render('/Users/me/Desktop/cpage/Templates/login')
return render
class Login:
def GET(self):
if logged():
render = create_render(session.privilege)
return '%s' % render.login_double()
else:
render = create_render(session.privilege)
return '%s' % render.login()
def POST(self):
name, passwd = web.input().name, web.input().passwd
ident = db.select('example_users', where='name=$name', vars=locals())[0]
try:
if hashlib.sha1("sAlT754-"+passwd).hexdigest() == ident['pass']:
session.login = 1
session.privilege = ident['privilege']
render = create_render(session.privilege)
return render.login_ok()
else:
session.login = 0
session.privilege = 0
render = create_render(session.privilege)
return render.login_error()
except:
session.login = 0
session.privilege = 0
render = create_render(session.privilege)
return render.login_error()
class Reset:
def GET(self):
session.login = 0
session.kill()
render = create_render(session.privilege)
return render.logout()
if __name__ == "__main__":
app.run()
桌面上的目录cpage包含以下内容:
DBTest.py Templates login.html sessions
在模板中还有另一个登录.html,只是为了确定它是否存在,因为我面临的问题是:服务器能够从终端启动(我运行的是MacOSX Mavericks) 但每当我进来本地主机:端口/登录它崩溃了:
^{pr2}$
好吧,我自己想出来的,可能是最好的学习方法。 不管怎样,我都想为世界提供答案。在
首先,教程中的代码必须看起来有点不同,所以这个post helped me a lot.
在使用了这个代码(或者更好的方法:合并它)之后,我遇到了同样的问题。在
最后我不得不重新组织我的文件夹结构。添加布局.html到Templates文件夹修复了该问题。使用正确的目录路径也是很重要的。在
相关问题 更多 >
编程相关推荐