我有一个带有自定义调度程序的CherryPy应用程序,它继承自cherrypy._cpdispatch.Dispatcher
。在其方法def __call__(self, path): ...
中,我可以获取请求的路径作为参数path
。 path
不包含查询字符串,也不包含cherrypy.url
。我发现我可以分别以cherrypy.request.query_string
的形式获取查询字符串。当然,如果我在调度程序中引发重定向,例如
raise cherrypy.HTTPRedirect(transform(path), 301)
然后查询字符串丢失。
我想在重定向后保留查询字符串。有没有办法获取原始路径或URL,包括查询字符串?如果没有,我应该用path + (if query_string then '?' + query_string else '')
之类的东西来重建它,还是有更好的方法呢?
答案 0 :(得分:1)
我意识到cherrypy.url
有一些有用的参数。
"http://example.com/foo/bar?arg=1"
,请说cherrypy.url(qs = cherrypy.request.query_string)
。"/foo/bar?arg=1"
,请说cherrypy.url(qs = cherrypy.request.query_string, relative = "server").