表單
1.用法:通常不要用來生成頁面上的表單控件(耦合度太高所以不容易定制),主要用來驗(yàn)證數(shù)據(jù)。
2.Form的屬性和方法:
-
is_valid()/is_multipart() -
errors/fields/is_bound/changed_data/cleaned_data -
add_error()/has_errors/non_field_errors() clean()
3.Form.errors的方法:
-
as_data()/as_json()/get_json_data()
問題1:Django中的Form和ModelForm有什么作用?(通常不用來生成表單主要用來驗(yàn)證數(shù)據(jù))
問題2:表單上傳文件是應(yīng)該注意哪些問題?(表單的設(shè)置、多文件上傳、圖片預(yù)覽(FileReader)、Ajax上傳文件、上傳后的文件如何儲(chǔ)存、調(diào)用云儲(chǔ)存(如阿里云OSS、七牛云、LeanCloud等
))
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="..." multiple>
<input type="file" name="foo">
<input type="file" name="foo">
<input type="file" name="foo">
</form>
說明:上傳文件預(yù)覽效果可以通過HTML5的FIleReader來實(shí)現(xiàn)。
說明:使用云儲(chǔ)存通常是比自己配置分布式文件這種方式更靠譜的做法,而且云儲(chǔ)存通常成本并不太高。不僅如此大多數(shù)云儲(chǔ)存還提供了圖片裁剪、生成水印、視頻轉(zhuǎn)碼、CDN等服務(wù)等等。如果要自己做上傳視頻文件轉(zhuǎn)碼,需要安裝第三方庫ffmpeg,在程序中調(diào)用該三方庫實(shí)現(xiàn)轉(zhuǎn)碼。