回答:
変数のキーワード引数を取ります:
url_for('add', variable=foo)
url_for
、Flaskの可変ルールルートの関数パラメーターとして渡されます
@app.route("/<a>/<b>")
やdef function(a,b): ...
、その機能として、あなたが使用する必要がありますurl_for
と、このようにそのキーワード引数を指定:url_for('function', a='somevalue', b='anothervalue')
url_for
Flaskは、アプリケーション全体(テンプレートを含む)でURLを変更するオーバーヘッドを防ぐためにURLを作成するために使用されます。なしでurl_for
、アプリのルートURLに変更がある場合は、リンクが存在するすべてのページで変更する必要があります。
構文: url_for('name of the function of the route','parameters (if required)')
次のように使用できます。
@app.route('/index')
@app.route('/')
def index():
return 'you are in the index page'
インデックスページへのリンクがある場合、これを使用できます。
<a href={{ url_for('index') }}>Index</a>
あなたはそれを使ってたくさんのことをすることができます、例えば:
@app.route('/questions/<int:question_id>'): #int has been used as a filter that only integer will be passed in the url otherwise it will give a 404 error
def find_question(question_id):
return ('you asked for question{0}'.format(question_id))
上記の場合、以下を使用できます。
<a href = {{ url_for('find_question' ,question_id=1) }}>Question 1</a>
このように、単にパラメーターを渡すことができます!
{{ url_for('find_question' ,question_id=question.id) }}
しない{{ url_for('find_question' ,question_id={{question.id}}) }}
Flask APIドキュメントを参照してください。flask.url_for()
jsまたはcssをテンプレートにリンクするための使用法のその他のサンプルスニペットを以下に示します。
<script src="{{ url_for('static', filename='jquery.min.js') }}"></script>
<link rel=stylesheet type=text/css href="{{ url_for('static', filename='style.css') }}">
テンプレート:
関数名と引数を渡します。
<a href="{{ url_for('get_blog_post',id = blog.id)}}">{{blog.title}}</a>
ビュー、機能
@app.route('/blog/post/<string:id>',methods=['GET'])
def get_blog_post(id):
return id
def add(variable)
?