Pythonのテンプレートエンジン"jinja2"のカスタムフィルターで、リストのデータをパラメータに変換しリンクとして表示する方法。
リストに収まったそれぞれのデータをあるURLのパラメータにして、リンクに変換して表示するという操作で、jinja2のカスタムフィルターとリスト内包表記を使うと割とシンプルに書けるというサンプルです。
テンプレート側ではリスト形式のデータをパイプでカスタムフィルターに渡すだけ。
{{ item['hogelist'] | list2link }}
アプリケーションのカスタムフィルターは、リストのそれぞれの値をパラメータとしたリンクに変換し文字列にjoinして返します。
def list2link(list):
str = ','.join(["<a href='search?q=" + x + "'>" + x + "</a>" for x in list])
return str
あとはHTMLリンダリングの際にフィルターを呼び出せるように登録するだけ
env = Environment(loader=FileSystemLoader("./template", encoding='utf8'))
env.filters['list2link'] = list2link
template = "hoge.html"
tmpl = env.get_template(template)
htmlstring = tmpl.render(item=some_list)
簡単。