私は自分のアプリで次のようなルートを使用しています:
Route(r'/thing/<some_id>/foo', handler=ThingFoo, name="thing-foo")
これは、を使用してURLを生成するために使用されuri_for('thing-foo', some_id="something")
、保存するユーザーに返されます。次に、別のリクエストで、ユーザーは以前に返されたURLを投稿し、そこで解析する必要があります。
<some_id>
ルーターがRequestHandlerのget/postメソッドに値を渡すのと同じ方法で、提供されたURLからパターンの値を抽出したいのですが、これに関するドキュメントが不足しているようです。
次のようなものはありますか?
route, some_id = webapp2.extract_uri(the_url)
(もちろん、正規表現を使用して値を直接抽出することはできますが、それはあまり乾燥していないようです)。
これが私がやりたいことの例です。
def image_url(request, image_blob_key):
if image_blob_key:
return request.url_for('image', resource=image_blob_key, _full=True)
else:
return None
def blob_key_from_image_url(image_url):
# Do something here to calculate the blob_key from the URL.
return blob_key
私のアプリの一部では、image_urlはblob_keyから計算され、ユーザーに渡されます。後で(たとえば)画像を削除したい場合は、POSTリクエストでURLを返します。削除できるように、画像からblob_keyを抽出します。