1 回答
TA贡献1887条经验 获得超5个赞
name = None是所谓的默认参数值,在您发布的函数的情况下,它似乎可以作为确保函数hello_there在有或没有name被传递的情况下工作的一种方式。
注意函数装饰器:
@app.route("/hello/")
@app.route("/hello/<name>")
这意味着对该函数的预期调用可能带有或不带有参数名称。通过将name默认参数设置为None,我们可以确保如果name从未传递过,该函数仍然能够正确呈现页面。请注意以下事项:
>>> def func(a):
... return a
>>> print(func())
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: func() missing 1 required positional argument: 'a'
相对
>>> def func(a = None):
... return a
>>> print(func())
None
请注意您发布的函数在name以下内容中的引用方式return:
return render_template(
"hello_there.html",
name=name,
date=datetime.now()
)
如果name没有事先定义,那么您会看到上面列出的错误。另一件事是——如果我不得不猜测的话——我会假设在模板hello_there.html中存在一个上下文切换,用于何时name是None和何时是某事:
{% if name %}
<b> Hello {{ name }}! </b>
{% else %}
<b> Hello! </b>
{% endif %}
添加回答
举报