Имя в качестве аргумента функции hello назначается None, но почему имя в render_template примет значение имени, если оно указано в URL-адресе? В основном, мой вопрос заключается в том, как Python знает, какое имя None и какое имя указывается в URL-адресе?аргумент колбы в 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-адресе и переменной аргумента 'name' в функции' hello() 'совпадают. –
cuongnv23
Да и вот почему я смущен, потому что, если я пойду/привет, я просто вижу Hello World! но если я перейду к/hello/payam, тогда я увижу Hello Payam, так как render_template узнает, что имя является payam, если name = None? –
name = None - это по умолчанию, но если вы предоставите ему другой аргумент, перейдя к/hello/, вместо этого это займет. –
iScrE4m