Engineer in Tokyo

Werkzeugのreverse URL処理

ほぼ汎用イベント管理ツールの改善をしようと思ってて、実際にコードを見るとURLを使ってるのが気になった。

WerkzeugのURLルーティングでDjangoのreverse関数みたいにURLの名前からURLに変換できるのかなと調べて、ある方法がありました。名前からじゃなくて、endpointから変換するけど。。。

from werkzeug redirect as wredirect
from urls import url_map

def reverse(**kwargs):
  c = url_map.bind('')
  return wredirect(c.build(**kwargs))

...
   return reverse('form', dict(key=key, slug=slug))
...