Django中使用locals()函數(shù)的技巧
對 current_datetime 的一次賦值操作:
def current_datetime(request):
now = datetime.datetime.now()
return render_to_response('current_datetime.html', {'current_date': now})
很多時候,就像在這個范例中那樣,你發(fā)現(xiàn)自己一直在計算某個變量,保存結果到變量中(比如前面代碼中的 now ),然后將這些變量發(fā)送給模板。 尤其喜歡偷懶的程序員應該注意到了,不斷地為臨時變量和臨時模板命名有那么一點點多余。 不僅多余,而且需要額外的輸入。
如果你是個喜歡偷懶的程序員并想讓代碼看起來更加簡明,可以利用 Python 的內建函數(shù) locals() 。它返回的字典對所有局部變量的名稱與值進行映射。 因此,前面的視圖可以重寫成下面這個樣子:
def current_datetime(request):
current_date = datetime.datetime.now()
return render_to_response('current_datetime.html', locals())
在此,我們沒有像之前那樣手工指定 context 字典,而是傳入了 locals() 的值,它囊括了函數(shù)執(zhí)行到該時間點時所定義的一切變量。 因此,我們將 now 變量重命名為 current_date ,因為那才是模板所預期的變量名稱。 在本例中, locals() 并沒有帶來多 大 的改進,但是如果有多個模板變量要界定而你又想偷懶,這種技術可以減少一些鍵盤輸入。
使用 locals() 時要注意是它將包括 所有 的局部變量,它們可能比你想讓模板訪問的要多。 在前例中, locals() 還包含了 request 。對此如何取舍取決你的應用程序。
相關文章
python多版本工具miniconda的配置優(yōu)化實現(xiàn)
通過Miniconda,您可以輕松地創(chuàng)建和管理多個Python環(huán)境,同時確保每個環(huán)境具有所需的依賴項和軟件包,本文主要介紹了python多版本工具miniconda的配置優(yōu)化實現(xiàn),感興趣的可以了解一下2024-01-01
pycharm 主題theme設置調整仿sublime的方法
今天小編就為大家分享一篇pycharm 主題theme設置調整仿sublime的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05
Python PyQt5實戰(zhàn)項目之網(wǎng)速監(jiān)控器的實現(xiàn)
PyQt5以一套Python模塊的形式來實現(xiàn)功能。它包含了超過620個類,600個方法和函數(shù)。它是一個多平臺的工具套件,它可以運行在所有的主流操作系統(tǒng)中,包含Unix,Windows和Mac OS。PyQt5采用雙重許可模式。開發(fā)者可以在GPL和社區(qū)授權之間選擇2021-11-11
基于Python編寫一個計算器程序,實現(xiàn)簡單的加減乘除和取余二元運算
這篇文章主要介紹了基于Python編寫一個計算器程序,實現(xiàn)簡單的加減乘除和取余二元運算,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-08-08

