标签:sheet 返回 turn key conf sub code com ida
from django import forms from django.forms import widgets from django.core.validators import RegexValidator class MyForm(forms.Form): username = forms.CharField(min_length=3, label=‘用户名‘, max_length=8, #输入错误后的值 error_messages={ ‘required‘: ‘姓名不能为空‘, ‘min_length‘: ‘最小3位数‘, ‘max_length‘: ‘最大8位数‘, }, widget=widgets.TextInput(attrs={‘class‘: ‘form-control‘})) password = forms.CharField(min_length=3, label=‘密码‘, max_length=8, error_messages={ ‘required‘: ‘密码不能为空‘, ‘min_length‘: ‘最小3位数‘, ‘max_length‘: ‘最大8位数‘, }, widget=widgets.PasswordInput(attrs={‘class‘: ‘form-control‘})) confirm_password = forms.CharField(min_length=3, label=‘确认密码‘, max_length=8, error_messages={ ‘required‘: ‘确认密码不能为空‘, ‘min_length‘: ‘最小3位数‘, ‘max_length‘: ‘最大8位数‘, }, widget=widgets.PasswordInput(attrs={‘class‘: ‘form-control‘})) email = forms.EmailField(label=‘Email‘, error_messages={ ‘required‘:‘邮箱不能为空‘, ‘invalid‘: ‘格式错误‘ }, widget=widgets.EmailInput(attrs={‘class‘: ‘form-control‘})) #RegexValidator验证器可以用正则匹配 phone = forms.CharField( validators=[RegexValidator(r‘^[0-9]+$‘, ‘请输入数字‘), RegexValidator(r‘^159[0-9]+$‘, ‘数字必须以159开头‘)], ) #局部钩子当走完上面的form校验才会走这个局部钩子函数 def clean_username(self): username = self.cleaned_data.get(‘username‘) if username == ‘hkk‘: self.add_error(‘username‘, ‘姓名存在‘) return username #全局钩子 def clean(self): password = self.cleaned_data.get(‘password‘) confirm_password = self.cleaned_data.get(‘confirm_password‘) if password != confirm_password: self.add_error(‘confirm_password‘, ‘密码不一致‘) return self.cleaned_data def index3(request): form_obj = MyForm() if request.method == ‘POST‘: form_obj = MyForm(request.POST) #返回为布尔值如果校验成功返回True如果校验失败返回False if form_obj.is_valid(): #校验成功的后返回的字典 key为字段values为用户输入后正确的值 print(form_obj.cleaned_data) print(form_obj.errors) return render(request, ‘text3.html‘, {‘form_obj‘: form_obj})
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <link rel="stylesheet" href="/static/bootstrap-3.3.7-dist/css/bootstrap.min.css"> </head> <body> <div class="row"> <div class="col-md-6 col-lg-offset-3"> <form action="" method="post" novalidate> {% for foo in form_obj %} <div class="form-group"> <label for="{{ foo.auto_id }}">{{ foo.label }}</label> {{ foo }} <span style="color: red">{{ foo.errors.0 }}</span> </div> {% endfor %} <input type="submit" value="提交"> </form> </div> </div> </body> <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script> <script src="/static/bootstrap-3.3.7-dist/js/bootstrap.min.js"></script> </html>
标签:sheet 返回 turn key conf sub code com ida
原文地址:https://www.cnblogs.com/huikejie/p/11227865.html