一、注册相关的知识点
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、可以用下面的方法判断是什么请求