我一直在玩 Tornado,我写了一些看起来不太好的代码。
我正在编写一个应用程序来存储食谱作为示例。这些是我的处理程序:
handlers = [
(r"/recipes/", RecipeHandler),
(r"/recipes", RecipeSearchHandler), #so query params can be used to search
]
这导致我写这个:
class RecipeHandler(RequestHandler):
def get(self):
self.render('recipes/index.html')
class RecipeSearchHandler(RequestHandler):
def get(self):
try:
name = self.get_argument('name', True)
self.write(name)
# will do some searching
except AssertionError:
self.write("no params")
# will probably redirect to /recipes/
有没有更好的方法来处理这些 URL 而无需尝试/例外?我希望 /recipes 和 /recipes/ 显示相同的内容,而 /recipes?name=something 会进行搜索,最好是不同的处理程序。