Flaskのurl_for()の使い方備忘録
Flaskでアプリケーションを作成する際、Template(*.htmlのファイル)内でhref="hoge.html"
みたいな感じで書く方法がある。
じゃなくて、Flaskのurl_for()を埋め込んでしまって、受け取った文字列のメソッドを発火、メソッド内でテンプレートをreturnするという書き方ができる(はず)。
from flask import Flask, render_template, url_for app = Flask(__name__) @app.route("/") def index(): return render_template("index.html") def hoge(): return "hoge"
<html> <body> <a href={{url_for("hoge")}}>ほげほげのページ</a> </body> <html>
このとき次のことに注意。
- url_forはちゃんとimportする
- url_forの引数に与えるメソッド名はダブルクォーテーションでくくる
- もしもBlueprintを使ってアプリケーションを分割している場合は、[object name].[method name]とすること
というかちょっと気になったんですけど、皆さんtemplateにurl埋め込んでるんですかね?
それともurl_forを埋め込んで、view側でルーティングしてますか?どんなふうに書いてるの。