0
16進カラーコード(0xFF0000またはFF0000のようなフォーマットを使用する)のフィルタをボトルアプリケーションに追加しようとしています。16進カラーコードのボトルワイルドカードフィルタ
私はこのボトルのチュートリアルhttps://bottlepy.org/docs/dev/routing.html続く:あなたは、ルータに独自のフィルタを追加することができます
を。必要なのは、正規表現文字列、URLフラグメントをPython値に変換するための呼び出し可能メソッド、およびその逆を行う呼び出し可能関数の3つの要素を返す関数です。フィルタ機能は、唯一のパラメータとして設定文字列と呼ばれ、必要に応じてそれを解析可能性があります
しかし、毎回私は私の関数を呼び出す:
@app.route('/<color:hexa>')
def call(color):
....
私は404を受け取る:
Not found: '/0x0000FF'
多分私は目が見えませんが、私は何が欠けているのか分かりません。ここに私のフィルタである:
def hexa_filter(config):
regexp = r'^(0[xX])?[a-fA-F0-9]+$'
def to_python(match):
return int(match, 0)
def to_url(hexNum):
return str(hexNum)
return regexp, to_python, to_url
app.router.add_filter('hexa', hexa_filter)
ありがとうございます!完璧に動作します!私はおそらくもう一度もう一度やり直さなければならないでしょう! –