2018-10-15-Python全栈开发-day67-登陆注册
from django.shortcuts import render,HttpResponse from django.forms import fields # Create your views here. from django.core.exceptions import ValidationError from django import forms from django.forms import fields as django_fields from app01 import models class Form2(forms.Form): user=django_fields.CharField( min_length=8, max_length=32 ) pwd = django_fields.CharField() class Form1(forms.Form): user=django_fields.CharField( min_length=8, max_length=32 ) pwd1 = django_fields.CharField() pwd2 = django_fields.CharField() # pwd1=django_fields.RegexField( # '^(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[!@#$\%\^\&\*\(\)])[0-9a-zA-Z!@#$\%\^\&\*\(\)]{8,32}$', # min_length=12, # max_length=32, # error_messages={'required': '密码不能为空.', # 'invalid': '密码必须包含数字,字母、特殊字符', # 'min_length': "密码长度不能小于8个字符", # 'max_length': "密码长度不能大于32个字符"} # ) # pwd2=django_fields.RegexField( # '^(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[!@#$\%\^\&\*\(\)])[0-9a-zA-Z!@#$\%\^\&\*\(\)]{8,32}$', # min_length=12, # max_length=32, # error_messages={'required': '密码不能为空.', # 'invalid': '密码必须包含数字,字母、特殊字符', # 'min_length': "密码长度不能小于8个字符", # 'max_length': "密码长度不能大于32个字符"} # ) # '^(?=.*[a-z])(=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&.])[A-Za-z\d$@$!%*?&.]{6, 20}' def clean(self): v1=self.cleaned_data['pwd1'] v2=self.cleaned_data['pwd2'] if v1==v2: pass else: raise ValidationError('密码不一致') def index(request):#登陆 f1 = Form2() if request.method=='POST': data=Form2(request.POST) form_user=request.POST.get('user') print(form_user) form_pwd=request.POST.get('pwd') print(form_pwd) v=models.User.objects.filter(user=form_user).values('pwd') v=list(v) print(v) print(v[0]['pwd']) v=v[0]['pwd'] if data.is_valid(): print(222) if v ==form_pwd: return HttpResponse('Hello') return render(request,'index.html',{'f1':f1}) def login(request):#注册 f1=Form1() return render(request,'login.html',{'f1':f1}) def upload(request): f1 = Form1(request.POST) if request.method=='POST': f1=Form1(request.POST) if f1.is_valid(): user=request.POST.get('user') pwd=request.POST.get('pwd1') models.User.objects.create( user=user, pwd=pwd ) return render(request, 'index.html', {'f1': f1}) else: return render(request, 'login.html', {'f1': f1})
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form id='form1' action="/upload" method="post"> {% csrf_token %} 用户名<div>{{ f1.user }}{{ f1.errors.user.0 }}</div> 密码<div>{{ f1.pwd1 }}{{ f1.non_field_errors.0 }}</div> 确认密码<div>{{ f1.pwd2 }}{{ f1.non_field_errors.0 }}</div> <div><input type="submit" value="提交"></div> </form> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> #form1 input{ display: inline-block; } </style> </head> <body> <form id='form1' action="/index" method="post"> {% csrf_token %} 用户名<div>{{ f1.user }}{{ f1.errors.user.0}}</div> 密码<div>{{ f1.pwd }}{{ f1.pwd.user.0}}</div> <div><input type="submit" value="登陆"></div> </form> <div><a href="/login">没有账号?注册</a></div> </body> </html>
明天写验证码,先睡觉

浙公网安备 33010602011771号