我正在编写一个处理文本及其属性的程序/服务。 localhost:8000 / title?img = img_url.jpg& text_color =#FF0000
在我的处理程序中我有类似的东西:
application = tornado.web.Application([
(r"/title_overlay", MainHandler),
])
class MainHandler(tornado.web.RequestHandler):
def check_origin(self, origin):
return True
def get(self):
image_url = self.get_argument("img", None, True)
image_local_file = 'image' + "_" + image_url.split('/')[-1]
urllib.urlretrieve(image_url, image_local_file)
text_color = self.get_argument('text_color', '', True)
.....
.....
.....
我无法获得text_color值,即#FF0000。提取imgurl但不是text_color。 这是否必须对#字符做一些事情。 ?
答案 0 :(得分:1)
是的,这是因为'#'之后的部分称为fragment identifier,浏览器在获取URL时甚至不会发送到服务器。要对网址中的颜色进行编码,您必须省略“#”字符,或对其进行网址编码:
text_color=%23FF0000