URL处理如何在web.py中运行?

时间:2014-03-12 10:32:23

标签: python web web.py

通过以下方式我绑定" hello.py"和" goodbye.py"与相应的类(函数),它的工作原理。如果我去" 0.0.0.0:8080 / hello.py"或者" 0.0.0.0:8080 / goodbye.py",我看到了我期待看到的内容。

import web

urls = ('/(hello.py)', 'hello', '/(goodbye.py)', 'goodbye')

app = web.application(urls, globals())

class hello:
    def GET(self, name):
        if not name: 
            name = 'World'
        return 'Hello, ' + name + '!'

class goodbye:
    def GET(self, name):
        if not name: 
            name = 'World'
        return 'Goodbye, ' + name + '!'

if __name__ == "__main__":
    app.run()

但是,我不明白为什么我需要使用括号。如果我将'/(hello.py)'替换为'/hello.py',则无效。但是,在示例中here没有使用括号。

1 个答案:

答案 0 :(得分:1)

从我看到的示例(我不太了解web.py)中,get参数不应该作为方法参数传入,而是通过web.input方法获取,如下所示:

import web

urls = (

    '/SomePageHello','SomePageHello',
    '/SomePageGoodbye','SomePageGoodbye',


    )

app = web.application(urls, globals())

class SomePageHello:
    def GET(self):
        user_data = web.input(name="no data")
        return "<h1> Hello " + user_data.name + "</h1>"

class SomePageGoodbye:
    def GET(self):
        user_data = web.input(name="no data")
        return "<h1> Goodbye " + user_data.name + "</h1>"



if __name__ == "__main__":
    app.run()

网址应该是:

http://127.0.0.1:8081/SomePageHello?name=dasfasd