web.py未检测到GET方法

0 投票
1 回答
917 浏览
提问于 2025-04-17 19:38

我刚接触Python和web.py这两个领域,还是个新手。

我刚创建了三个文件:

urls.py

url_mappings = (
    '/', 'index'
)

index.py

class index:
    def GET(self):
        return "<h1>Hello World</h1>"

    def POST (self):
        return "<h1>Hello World in POST</h1>"

webstart.py

import web
import index
from urls import url_mappings

if __name__ == "__main__":
    app = web.application (url_mappings, globals())
    app.run()

我用命令python webstart.py启动了开发服务器,然后在浏览器里输入localhost:8080,结果它给我返回了None,而且在日志里我看到以下信息:

127.0.0.1:52822 - - [19/Mar/2013 20:44:18] "HTTP/1.1 GET /" - 405 方法不被允许
127.0.0.1:52822 - - [19/Mar/2013 20:44:18] "HTTP/1.1 GET /favicon.ico" - 404 找不到

我漏掉了什么吗?

1 个回答

1

web.py 找不到控制器类,你需要修改 urls.py 文件:

url_mappings = (
    '/', 'index.index'
)

或者在 webstart.py 文件中导入 index

from index import index

也就是说,你要么直接把网址映射到 模块名.类名,要么从模块中 导入类名,这样 类名 就可以在全局范围内使用了。

撰写回答