0

这是我的代码和我的问题。

import web

render = web.template.render('templates/')

urls = (
    '/(.+)', 'index'
)

class index:
        def GET(self, lang):
            return render.index(lang)

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

我的 index.html 就是这个:

$def with (lang)


$if lang == 'en':
    I just wanted to say <em>hello</em>
$elif lang =='es' or lang == '':
    <em>Hola</em>, mundo!
$else:
    página no disponible en este idioma

问题是,当我运行此代码时,出现 404 错误。我认为问题可能出在 urls 部分,特别是 /(.+)。我认为我没有正确使用它,我想让它工作,这样我就可以使用多个参数。当我使用 /(.*) 它可以工作,但不能用于多个参数,并且文档说对于多个参数我必须使用 + 而不是 *

预先感谢。

4

1 回答 1

0

您应该研究正则表达式,webpy 仅将其与路径匹配并将匹配的组传递给控制器​​方法。您可以将 group 标记为可选,?因此如果它为空,则不会捕获它,并且默认情况下 lang 将设置为 None。

同样.在正则表达式中表示任何符号,以捕获您最好使用\w匹配任何单词字符的语言。

urls = (
    '/(\w+)?', 'index'
)

class index:
    def GET(self, lang=None):
        return render.index(lang)
于 2013-03-01T21:04:27.820 回答