我正在使用python进行在线课程并尝试使用web.py建立一个网站。我在Windows 10计算机上运行python 3.6.1
。我能够根据需要手动安装web.py并验证它是否正确导入。我已经尝试过" python3"和" p3"来自github的web.py的分支都会导致同样的问题。
我认为这是一个简单的三个页面,定义为" urls"声明如下。当我运行代码然后转到我的浏览器并输入http://localhost:8080/
,我希望看到主页。但是,我得到随机结果,好像web.application()
调用随机选择了网址中的两个元素。我得到以下任何结果:
404 - Not found
500 - Key Error: '/register'
500 - Key Error: '/postregistration'
200 - Returns the Home page
200 - Returns the Registration page
200 - Returns the PostRegistration page
请注意,我从未输入http://localhost:8080/register
或/postregistration
,但有时浏览器会像我一样呈现这些页面。
我无法理解它在做什么,我以为我是按照教练的例子来说明的。有什么想法吗?
import web
from Models import RegisterModel
urls = {
'/', 'Home',
'/register', 'Register',
'/postregistration', 'PostRegistration'
}
render = web.template.render("Views/Templates", base="MainLayout")
app = web.application(urls, globals())
#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()
reg_model = RegisterModel.RegisterModel()
reg_model.insert_user(data)
return data.username
if __name__ == "__main__":
app.run()
答案 0 :(得分:0)
您的urls
变量是set
。它应该是tuple
。从这个改变您的代码:
urls = {
'/', 'Home',
'/register', 'Register',
'/postregistration', 'PostRegistration'
}
对此:
urls = (
'/', 'Home',
'/register', 'Register',
'/postregistration', 'PostRegistration'
)