【发布时间】:2017-04-27 20:25:19
【问题描述】:
我有一个简单的 TurboGears 2 脚本,名为 app.py:
#!/usr/bin/env python3
from wsgiref.simple_server import make_server
from tg import expose, TGController, AppConfig
class RootController(TGController):
@expose()
def lookup(self, name):
return name
config = AppConfig(minimal=True, root_controller=RootController())
print("Serving on port 5000...")
httpd = make_server('', 5000, config.make_wsgi_app())
httpd.serve_forever()
当我运行 app.py 并访问 http://localhost:5000/lookup/dave 时,我看到了预期的“dave”。但是当我访问http://localhost:5000/lookup/dave%2Fdavid 时,我得到一个 404 错误而不是“dave/david”。似乎 TurboGears 将 'dave%2Fdavid' 拆分为两个单独的参数。
如何让 TurboGears 尊重转义的斜线与未转义的斜线不同?
【问题讨论】:
-
Web 浏览器肯定会区分 / 和 %2F。
-
10 年前有一个 TurboGears 的错误报告,它已经“修复”(但现在又回来了):trac.turbogears.org/ticket/377
-
经过进一步研究,您似乎是正确的。
标签: python url-routing turbogears2 turbogears