网页.py找不到模板

2024-06-16 13:09:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我跟随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}$

Tags: webreturnifsessiondefcreatelogintemplate
1条回答
网友
1楼 · 发布于 2024-06-16 13:09:46

好吧,我自己想出来的,可能是最好的学习方法。 不管怎样,我都想为世界提供答案。在

首先,教程中的代码必须看起来有点不同,所以这个post helped me a lot.

在使用了这个代码(或者更好的方法:合并它)之后,我遇到了同样的问题。在

最后我不得不重新组织我的文件夹结构。添加布局.html到Templates文件夹修复了该问题。使用正确的目录路径也是很重要的。在

相关问题 更多 >