创建一个表单
一、创建一个表单
1、前端表单的介绍(用户登录)
<form action="" method="post" autocomplete="off"> <div class="form-group marb20 "> <label>用 户 名</label> <input name="username" id="account_l" type="text" placeholder="手机号/邮箱"/> </div> <div class="form-group marb8 "> <label>密 码</label> <input name="password" id="password_l" type="password" placeholder="请输入您的密码"/> </div> <div class="error btns login-form-tips" id="jsLoginTips"></div> <div class="auto-box marb38"> <a class="fr" href="forgetpwd.html">忘记密码?</a> </div> <input class="btn btn-green" id="jsLoginBtn" type="submit" value="立即登录 > "/> </form>
二、使用Form
类
- 1、在
App
包里面创建一个forms.py
的文件(一般是这样做的) 2、定义规则
from django import forms class LoginForm(forms.Form): username = forms.CharField(required=True, error_messages={'required': '用户名不能为空'}) password = forms.CharField(required=True, min_length=5, error_messages={'required': '密码不能为空', 'min_length': '密码长度不能小于5个字符'})
3、在视图类中使用
forms
中定义的规则class LoginView(View): """ 用户登录的视图 """ def get(self, request, *args, **kwargs): return render(request, 'login.html', kwargs) def post(self, request, *args, **kwargs): # 使用定义的forms中定义的规则,传递的是一个字典 login_form = forms.LoginForm(request.POST) # 使用forms实例对象.is_valid()验证提交的数据是否符合规范 if login_form.is_valid(): # 使用forms校验成功后的,数据字段存放到cleaned_data()中 # 这个地方也可以继续使用request.POST.get()获取字段值 username = login_form.cleaned_data.get('username', None) password = login_form.cleaned_data.get('password', None) user = authenticate(username=username, password=password) if user is not None: login(request, user) return redirect('home') return self.get(request, message='用户名或者密码错误') # 获取错误返回 return self.get(request, message=login_form.errors)
4、几个字段
- 1.使用
forms
类的实例.is_valid()
判断是否为真 - 2.校验成功后
forms
类的实例.cleaned_data.get()
可以获取提交的数据 - 3.使用
forms
类的实例.errors
获取校验失败的错误,是一个字典
- 1.使用