2016-07-21 20 views
0

Ich schreibe ein Programm/Service, die Text und seine Attribute behandeln. localhost: 8000/title img = img_url.jpg & text_color = # FF0000Tornado Escape Pound # Zeichen

und In meinem Handler Ich habe so etwas wie:?

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) 
    ..... 
    ..... 
    ..... 

Ich bin nicht in der Lage text_color Wert, dh # FF0000 bekommen.. Das Extrahieren funktioniert, aber nicht text_color. Muss dies etwas mit dem # Zeichen tun. ?

Antwort

1

Ja, es ist, weil der Teil nach '#' fragment identifier genannt wird, die der Browser nicht einmal an den Server sendet, wenn er die URL abruft. Um eine Farbe in Ihrer URL zu kodieren musst du das Zeichen ‚#‘ oder URL-kodieren sie wegzulassen:

text_color=%23FF0000

+0

Gibt es eine Möglichkeit, die ich bekommen kann? – Abhi

+0

Der Browser sendet das Fragment nicht einmal an den Server, wenn es die URL abruft. –

+0

In Ordnung, Danke! – Abhi