有没有办法在扭曲中进行反向网址解析?

时间:2013-12-27 09:51:31

标签: url-routing twisted twisted.web

以几乎相似的方式,django可以将(view_name,args,kwargs)解析为字符串url,我想对twisted中的资源做同样的事情。

所以我会做urlresolve(Resource,args),它会返回一个我可以在模板或重定向等中使用的字符串url。

我只是简单地将url附加到Resource类本身并给它urlresolve方法来处理动态参数。我知道这会重复网址信息,但现在对我来说已经足够了。我认为实际上支持这一点应该非常简单,但我希望已经存在某些东西,我只是无法找到它。

2 个答案:

答案 0 :(得分:1)

此问题的问题在于Resource可能出现在一个,零个或多个网址上。如果您想拥有自己的资源类型,该资源类型仅在一个URL上可用,那么它可以有自己的方法来识别它所在的资源类型。

答案 1 :(得分:0)

你是对的,我不认为你可以用Twisted来做到这一点。原因是Resource只知道它的子资源,而不是它在层次结构中的位置。即。

rootResource = Resource(...)
barResource = Resource(...)
fooResource = Resource(...)

rootResource.putChild('foo', fooResource)
fooResource.putChild('bar', barResource)

# barResource doesn't know it's under foo/bar

我认为您将网址字段附加到Resource的想法很好。然后你可以做某种事情:

import urllib
args = dict(alpha= 1,beta=2)
resolvedUrl = '{0}?{1}'.format(resource.url, urllib.urlencode(args))