1 回答

TA貢獻(xiàn)1887條經(jīng)驗(yàn) 獲得超5個(gè)贊
name = None是所謂的默認(rèn)參數(shù)值,在您發(fā)布的函數(shù)的情況下,它似乎可以作為確保函數(shù)hello_there在有或沒(méi)有name被傳遞的情況下工作的一種方式。
注意函數(shù)裝飾器:
@app.route("/hello/")
@app.route("/hello/<name>")
這意味著對(duì)該函數(shù)的預(yù)期調(diào)用可能帶有或不帶有參數(shù)名稱(chēng)。通過(guò)將name默認(rèn)參數(shù)設(shè)置為None,我們可以確保如果name從未傳遞過(guò),該函數(shù)仍然能夠正確呈現(xiàn)頁(yè)面。請(qǐng)注意以下事項(xiàng):
>>> 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'
相對(duì)
>>> def func(a = None):
... return a
>>> print(func())
None
請(qǐng)注意您發(fā)布的函數(shù)在name以下內(nèi)容中的引用方式return:
return render_template(
"hello_there.html",
name=name,
date=datetime.now()
)
如果name沒(méi)有事先定義,那么您會(huì)看到上面列出的錯(cuò)誤。另一件事是——如果我不得不猜測(cè)的話(huà)——我會(huì)假設(shè)在模板hello_there.html中存在一個(gè)上下文切換,用于何時(shí)name是None和何時(shí)是某事:
{% if name %}
<b> Hello {{ name }}! </b>
{% else %}
<b> Hello! </b>
{% endif %}
添加回答
舉報(bào)