Django学习之项目记录二
1>图像上传及预览功能
思路:利用label的for属性,实际指向file类型的input标签,这样,点击label就跟点击这个input效果一样,
如下,label的 for属性,值为avatar,跟下面file类型的input的id属性值一样,再隐藏改input,就实现了
点击头像,弹出文件选取弹窗的功能。
预览功能思路:其实就是要获取文件弹窗里面,选择的文件对象的URL,再放入img标签,
选取文件对象之后,通过FileReader()对象下面的 readDataURL方法获取url,获取之后要在该对象的result里面
拿结果,需要注意的是,这里获取url可能需要一些时间,而这里代码执行之上而下,并不会等待上一句执行完毕再
执行下一句,所以,取url结果并写入img标签的函数需要加上onload方法,确保上一步已执行完成。
2>注册信息提交
给注册按钮绑定事件,也就是ajax请求,如下,之前说过,请求带了文件等非文本数据时,要生成一个formdata对象
以formdata对象传递过去。
方式一就是针对名称和值挨个添加到formdata对象,方式二就先取到form表单的数据对象,再循环取值添加,而且还把
csrf添加进去了,更方便,简洁,完整代码如下:
3>注册信息校验及错误信息返回
既然数据已经到了视图函数,那就form表单校验数据,校验失败则返回错误信息
接下来就处理下这个msg,让这些错误信息显示到各自的输入框下面
这里有个小问题,校验返回信息刷新问题,需在优化下,如下