Flaskルートの半分には、/<variable>/add
または/<variable>/remove
という変数が必要です。それらの場所へのリンクを作成するにはどうすればよいですか?url_for()でFlaskで動的URLを作成
は、ルーティングする関数の引数を1つとりますが、引数を追加できません。
Flaskルートの半分には、/<variable>/add
または/<variable>/remove
という変数が必要です。それらの場所へのリンクを作成するにはどうすればよいですか?url_for()でFlaskで動的URLを作成
は、ルーティングする関数の引数を1つとりますが、引数を追加できません。
これは、変数のキーワード引数を取ります。
url_for('add', variable=foo)
は、あなたのテンプレートにJSやCSSをリンクするため、使用のthe Flask API document for flask.url_for()
他のサンプルスニペットを参照してください以下の通りです。フラスコ内の
<script src="{{ url_for('static', filename='jquery.min.js') }}"></script>
<link rel=stylesheet type=text/css href="{{ url_for('static', filename='style.css') }}">
url_for
(テンプレートを含む)アプリケーション全体の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>
あなたは、単にパラメータを渡すことができます!
質問があります。最初の例では、インデックスメソッドが文字列として渡され、2番目のメソッドではfind_questionが渡されます変数。どうして? –
@AnandTyagiこれはあなたの意味ですか? [URLルーティング](http://flask.pocoo.org/docs/0.12/quickstart/#url-building) –
は、関数が 'def add(variable)'であることを意味しますか? – endolith
@endolith、はい。 ** 'url_for'に渡されたkwargsは、Flaskの可変ルールルートの関数パラメータとして渡されます。 – highvolt