0
hello関数への引数としての名前は割り当てられません。ただし、URLに提供されている場合、render_templateの名前は名前の値をとるのはなぜですか?基本的に私の質問は、どの名前がNoneで、どの名前がURLに与えられているかをPythonがどのように知っているかです。render_templateのフラスコ引数
from flask import render_template
@app.route('/hello')
@app.route('/hello/<name>')
def hello(name=None):
return render_template('hello.html', name=name)
hello.htmlは次のとおりです。
<!doctype html>
<title>Hello from Flask</title>
{% if name %}
<h1>Hello {{ name }}!</h1>
{% else %}
<h1>Hello, World!</h1>
{% endif %}
あなたのコードでは、常に 'name = None'が得られます。 URLルートの ''と 'hello()'関数の引数変数 'name'は同じです。 –
cuongnv23
はい、それが私が混乱している理由です。なぜなら、もし私が/に行くなら、私はちょうどHello Worldを見るからです!私が/ hello/payamに行くと、Hello Payamが表示されるので、render_templateはname = Noneの場合、名前がpayamであることをどのように見出しますか? –
name = Noneはデフォルトですが、別の引数を指定した場合は/ hello/になりますが、その代わりにそれが使用されます。 –
iScrE4m