当有一个问号时,如何将url作为url参数传递?

Zey*_*nel 6 python google-app-engine url-parameters

我使用这一行传递a url,main_iduser_tag_list传递给处理程序:

self.response.out.write("""

<a href="/tc?url=%s&main_id=%s&user_tag_list=%s" title="edit tag set">edit tag set</a>

""" %
(item.url, main_id, item.tag_list))
Run Code Online (Sandbox Code Playgroud)

当已经有一个问号在通过这项工作,除了罚款url(第一个参数)我再也不能得到main_id

main_id = self.request.get("main_id")
Run Code Online (Sandbox Code Playgroud)

在目标处理程序中,我得到错误

m = Main.get_by_id(int(main_id))
ValueError: invalid literal for int() with base 10: ''
Run Code Online (Sandbox Code Playgroud)

有没有解决的办法?

oro*_*aki 9

你只想用 urllib.quote

>>> import urllib
>>> urllib.quote('http://www.google.com?q=Zombie+Apocalypse')
'http%3A//www.google.com%3Fq%3DZombie%2BApocalypse'
Run Code Online (Sandbox Code Playgroud)

所以:

urllib.quote(item.url)
Run Code Online (Sandbox Code Playgroud)