Как передать URL в качестве параметра url, если в нем есть знак вопроса? - PullRequest
6 голосов
/ 25 марта 2011

Я использую эту строку, чтобы передать a url, main_id и user_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))

это прекрасно работает, за исключением того, что, когда впередал url (первый параметр) Я больше не могу получить main_id с

main_id = self.request.get("main_id")

в целевом обработчике, вместо этого я получаю ошибку

m = Main.get_by_id(int(main_id))
ValueError: invalid literal for int() with base 10: ''

Есть лиобойти это?

Ответы [ 2 ]

9 голосов
/ 25 марта 2011

Вы просто хотите использовать urllib.quote

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

Итак:

urllib.quote(item.url)
1 голос
/ 25 марта 2011

urllib.quote должен помочь с этим.

...