表单
1.用法:通常不要用来生成页面上的表单控件(耦合度太高所以不容易定制),主要用来验证数据。
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
有什么作用?(通常不用来生成表单主要用来验证数据)
问题2:表单上传文件是应该注意哪些问题?(表单的设置、多文件上传、图片预览(FileReader)、Ajax上传文件、上传后的文件如何储存、调用云储存(如阿里云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>
说明:上传文件预览效果可以通过HTML5的FIleReader来实现。
说明:使用云储存通常是比自己配置分布式文件这种方式更靠谱的做法,而且云储存通常成本并不太高。不仅如此大多数云储存还提供了图片裁剪、生成水印、视频转码、CDN等服务等等。如果要自己做上传视频文件转码,需要安装第三方库ffmpeg,在程序中调用该三方库实现转码。