这是我的代码和我的问题。
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错误。我认为问题可能是网址部分,特别是/(。+)。我想我没有正确使用它,我想让它工作,所以我可以使用多个参数。当我使用/(。*)它工作,但不是一个以上的参数,并且文档说,对于超过1个参数我必须使用+而不是*
事先谢谢。
答案 0 :(得分:0)
你应该学习regexp,webpy只匹配路径并将匹配的组传递给控制器方法。您可以使用?
将组标记为可选,因此如果它为空,则不会捕获它,并且默认情况下lang将设置为None。
regexp中的.
表示任何符号,用于捕获您最好使用匹配任何单词字符的\w
语言。
urls = (
'/(\w+)?', 'index'
)
class index:
def GET(self, lang=None):
return render.index(lang)