一、注册相关的知识点
1、Form组件
我们一般写Form的时候都是把它写在views视图里面,那么他和我们的视图函数也不影响,我们可以吧它单另拿出来,在应用下面建一个forms.py的文件来存放

2、局部钩子函数
| 1 2 3 4 5 6 7 |
# 局部钩子函数 def clean_username(self): username = self.cleaned_data.get("username") valid = models.UserInfo.objects.filter(username=username).first() if valid: raise ValidationError("用户名已存在!") return username |
3、全局钩子函数
| 1 2 3 4 5 6 |
# 全局钩子函数:验证两次密码是否一致 def clean(self): if self.cleaned_data.get("password") == self.cleaned_data("password_again"): return self.cleaned_data else: raise ValidationError("两次密码不一致") |
4、 jQuery的属性操作相关的
| 1 2 3 4 5 6 7 8 9 10 11 |
attr: 一个参数是获取属性的值,两个参数是设置属性值 removeAttr(属性名): 删除属性值 prop: 适应于属性的返回值是布尔类型的(单选,反选,取消的例子) removePorp: 删除属性的值 |
5、循环的两种方式
| 1 2 |
$.each(数组/对象,function(i,v){}) $("div").each(function(i,v){}) |
6、css中的三种隐藏:
| 1 2 3 4 5 6 7 8 |
1、display:none 隐藏所有内容 2、visibility:hidden 隐藏内容 3、overflow:hidden 隐藏溢出内容 三者都是用来隐藏的 区别在于: visibility:虽然隐藏了,但是被隐藏的内容依然占据这空间,这段隐藏了的内容却保留空间的位置会在网页中显示空白 display:隐藏了不占用空间 |
7、提交二进制数据用FormData
| 1 2 3 4 5 6 7 |
var formData=new FormData(); formData.append("username",$("#id_username").val()); formData.append("email",$("#id_email").val()); formData.append("tel",$("#id_tel").val()); formData.append("password",$("#id_password").val()); formData.append("password_again",$("#id_password_again").val()); formData.append("avatar_img",$("#avatar")[0].files[0]); |
加上:
| 1 2 |
contentType:false processData:false |
8、可以用下面的方法判断是什么请求