2017-08-11 14 views
0

ブックマークアプリで。私はURLに追加されたリンクをキャプチャしようとしています。Python Bottle.Routes。疑問符(?)をキャプチャする

しかし、私がYouTubeのURLを送信しようとしているとき、

http://myapp.com/bookmark/https://www.youtube.com/watch?v=6ZOPGKFsTzI 

でもルート

@route("/bookmark/<url:re:.+>") 
def save(url) : 
    ... 

はそれをキャプチャしません。

これは、https://www.youtube.com/watchをキャプチャしますが、

これにマッチするパターンに関するアイデアはありますか?

+0

''http://myapp.com/bookmark/https://www.youtube.com/watch?v=6ZOPGKFsTzI'.split('/bookmark/')[1]' –

+0

私は処理していません文字列を手動で入力します。これはBottle.routesにあります。それは私のために舞台裏で行われています。そのため、例えば正規表現テストに入る前に文字列を変換することはできません。 – interstar

+0

あなたの例のURLは間違いなく、欠陥があります。 myapps.comのargsとyoutube.comのargsを区別するために、最低限、疑問符をエスケープする必要があります。いくつかの[有用な議論はこちら](https://stackoverflow.com/questions/2322764/what-c​​haracters-must-be-escaped-in-an-http-query-string)と他のところで。 –

答えて

1

?ボトルフレームワークによって?...の部分はURLの一部とみなされない可能性がありますが、query stringの一部です。

ブックマーク/ .*のルートを設定してから、要求オブジェクトにアクセスして完全な文字列を取得することができます。

+0

あなたは正しい考えを持っていますが、正確に言えば、疑問符は確かにURLの一部です。 _query string_コンポーネントから_path_コンポーネントを区切ります。 –