2017-05-18 3 views
0

Ich habe eine Route, die so aussieht,Bottle - Übergabe Hashtags in Anfrage

@app.route('/search/<query>') 
def search(query): 
    # query DB, return a template, etc. 

, die einige Datensätze abruft %query% aus der DB enthalten. Es bricht jedoch ab, wenn diese Abfrage einen oder mehrere # enthält.

Von dem, was ich gelesen habe, ist dies ein Problem mit URL-Codierung (# wird nicht in %23 oder etwas in diese Richtung konvertiert).

Wie kann ich das beheben? Versuchte Einstellung in search(query) wie andere Empfehlungen der Antwort, aber kein Glück.

+0

"Pausen" wie? Erwähnenswert ist auch, dass das URL-Fragment (alles nach einem unscaped '#') nicht einmal an Ihren Webserver gesendet wird. –

Antwort

1

Dies scheint ein Problem mit Ihrem Front-End-Code zu sein, der die URL nicht ordnungsgemäß codiert.

Ich habe gerade einen schnellen Test und Flasche korrekt gelöst /search/number%20%236 zu /search/number #6 ausgeführt.

Es ist wahrscheinlich, dass das, was Ihr Front-End verwendet, um Ihre URLs zu codieren, das Hash-Zeichen als Fragmentkennung interpretiert und es nicht korrekt codiert. Möglicherweise möchten Sie entweder eine andere Bibliothek verwenden, um die URLs zu codieren, bevor Sie sie übergeben, oder sie manuell codieren.

Verwandte Themen