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>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>
login
<!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>
index

明天写验证码,先睡觉

posted @ 2018-10-15 23:30  brownbearye  阅读(138)  评论(0)    收藏  举报