在这个代码中我有一个'args'值,它是'标题。标题'时,此值将显示在我的URL中。在
如何使url变成这样:“index.html/something\u某物而是它现在的显示方式,即:index.html/something%20something". 在
def livesearch():
'''Auto completes the search query'''
partialstr = request.vars.partialstr
query = db.listing.title.like('%'+partialstr+'%')
titles = db(query).select(db.listing.ALL)
items = []
for title in titles:
items.append(DIV(A(title.title, _id="resultLiveSearch", _href=URL('search', args='%s' % title.title))))
return TAG[''](*items)
我试着做到:
^{pr2}$我原以为会管用,但没用,我做错什么了?我该怎么解决这个问题?在
谢谢。在
%20
是单个空白的替换,因此在将空格传递给URL
之前,应该用下划线替换空格:详细说明FB的答案:URL()调用URLlib.引用在URL的args部分,它对空格和其他特殊字符进行%-转义。[\w./-]未被引用。(如果你在源代码中跟踪,这种情况会发生在gloon.html.URL。)
当使用生成的URL时(也就是说,生成新请求的URL),参数是不加引号的。所以(在您的例子中)像“foo bar”这样的标题在URL中将被编码为foo%20bar,但是在请求.args调用URL时。在
当你做你自己的编码(在本例中,把“foo bar”改为“foo_ubar”),你会得到“foo_ubar”请求.args需要你自己解码。在
相关问题 更多 >
编程相关推荐