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})views
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Titletitle>
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>
login
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Titletitle>
<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>
index
明天写验证码,先睡觉