Web.py 路由似乎一直在中断

Web.py routing seems to keep breaking

出于某种原因,每次我 运行 我的网络应用程序都会出现新的错误,要么找不到我的页面,要么属性错误,要么 KeyErrors,我不知道为什么。我正在按照不久前编写的教程进行操作,一些 web.py 规则可能已经更改,但我无法弄清楚为什么这不起作用。这是我的 controller.py 文件:

import web

urls = {

    '/', 'Home',
    '/register', 'Register',
    '/postregistration', 'PostRegistration'
}

render = web.template.render('Views/Templates', base='MainLayout')

# Classes / routes
class Home:
    def GET(self):
        return render.Home()

class Register:
    def GET(self):
        return render.Register()

class PostRegistration:
    def POST(self):
        data = web.input()
        return data.username

if __name__ == '__main__':
    app = web.application(urls, globals())
    app.internalerror = web.debugerror
    app.run()

我的文件结构如下:

controller.py
Models/
static/
    css/ [css files]
    js/ [javascript (bootstrap, jquery)
Views/
    Templates/
        MainLayout.html
        Home.html
        Register.html

我正在 Windows 上开发,有人可以帮助我吗?

您的 urls 是使用大括号 {} 而不是正确的括号 () 编写的。大括号使项目成为 set,这不能保证顺序。括号使它成为一个保证顺序的元组。

web.py 两两处理 url,假设第一个是 url 部分,第二个是 class 来处理它。没有保证的顺序,如您所见,您的结果是随机的。