龙卷风逃脱磅#角色

时间:2016-07-21 14:07:17

标签: python python-2.7 web-services url tornado

我正在编写一个处理文本及其属性的程序/服务。 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。 这是否必须对#字符做一些事情。 ?

1 个答案:

答案 0 :(得分:1)

是的,这是因为'#'之后的部分称为fragment identifier,浏览器在获取URL时甚至不会发送到服务器。要对网址中的颜色进行编码,您必须省略“#”字符,或对其进行网址编码:

text_color=%23FF0000