2016-07-21 5 views
0

Я пишу программу/сервис, которые обрабатывают текст и его атрибуты. локальный: 8000/название IMG = img_url.jpg & text_color = # FF0000Tornado Escape Pound # character

и в моем обработчике у меня есть что-то вроде:

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

Да, это потому, что часть после '#' называется fragment identifier, которую браузер даже не отправляет на сервер при получении URL-адреса. Для того, чтобы закодировать цвет в ваших URL вы должны опустить символ «#», или URL-закодировать его:

text_color=%23FF0000

+0

Есть ли способ, я могу получить это? – Abhi

+0

Браузер даже не отправляет фрагмент на сервер при получении URL-адреса. –

+0

Хорошо, спасибо! – Abhi