第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

python django 通過裝飾器或額外函數(shù)驗(yàn)證用戶輸入?還有什么更Pythonic的嗎?

python django 通過裝飾器或額外函數(shù)驗(yàn)證用戶輸入?還有什么更Pythonic的嗎?

暮色呼如 2024-01-15 17:16:32
我正在開發(fā)一個(gè)網(wǎng)絡(luò)應(yīng)用程序。用戶可以設(shè)置一些參數(shù)來運(yùn)行一些算法。因此,當(dāng)我在后端提取參數(shù)時(shí),我想在啟動(dòng)算法之前驗(yàn)證它們,這可能會(huì)在長時(shí)間執(zhí)行后崩潰。我應(yīng)該在算法函數(shù)周圍使用裝飾器,還是應(yīng)該將參數(shù)傳遞給像 def validate_parameters() 這樣的函數(shù),如果參數(shù)不正確,它會(huì)引發(fā)錯(cuò)誤?
查看完整描述

1 回答

?
慕萊塢森

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個(gè)贊

Python 的“請(qǐng)求寬恕而不是許可”的經(jīng)驗(yàn)法則是為了保持代碼的簡潔和易于理解。檢查代碼流程可以告訴您預(yù)期的路徑是什么,并且很明顯什么是異常條件。在這種情況下,不檢查輸入有兩個(gè)缺點(diǎn),并且您可以將所有檢查隱藏在函數(shù)中,以便代碼干凈。我想說這里的 pythonic 代碼是這樣的

????if?not?valididate_parameters(params):?
???????????raise?ValidationException(get_validation_error_msg(params))

這里你的validate_parameters函數(shù)只是做檢查。該get_validation_error_msg函數(shù)負(fù)責(zé)生成可以呈現(xiàn)給用戶的內(nèi)容的繁重工作。例如,它可以檢查驗(yàn)證函數(shù)在出現(xiàn)任何錯(cuò)誤時(shí)盡早退出的所有參數(shù)。請(qǐng)注意,您必須將 Exception 定義ValidationException為 Exception 的子類并在更高級(jí)別捕獲它。

除了一般編程的想法之外,在 Django 中,如果您的參數(shù)來自用戶填寫的表單,您應(yīng)該驗(yàn)證表單代碼中的每個(gè)字段。


查看完整回答
反對(duì) 回復(fù) 2024-01-15
  • 1 回答
  • 0 關(guān)注
  • 141 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)