6、用户注册功能的设计

准备工作:

在开发设计用户注册功能前,先了解另一款Django的开发库,专门用于做Django验证码的:

Django - simple - captcha(图形验证码)

地址:http://django-simple-captcha.readthedocs.io/en/latest/usage.html

建议安装0.4.6版本

安装过程参考上述网址。。。

安装完成后migration,生成数据表

安装完成;

设计注册功能:

定义form.py文件的字段验证类:

# -*- coding: utf-8 -*-
__author__ = 'oldlee'
__date__ = '2019-04-19 15:03'

from django import forms
#导入captcha类
from captcha.fields import CaptchaField


# 设计注册表单验证类
class RegisterForm(forms.Form):
    # email字段为必填
    email = forms.EmailField(required=True)

    # 密码字段为必填,且约定长度
    password = forms.CharField(required=True,min_length=5)

    # 实例化captcha,并指定错误信息
    captcha = CaptchaField(error_messages={'invalid':u'验证码错误'})

在view.py文件中定义注册表单验证类:

并对用户提交的数据进行数据库表填充,保存

# 导入对密码加密的类库
from django.contrib.auth.hashers import make_password
#导入RegisterForm来对用户输入的字段做验证
from .forms import LoginForm,RegisterForm


class RegisterView(View):
    def get(self,request):
        #实例化RegisterForm类
        register_form = RegisterForm()
        #对register.html页面返回register_form
        return render(request,'register.html',{'register_form':register_form})
    def post(self,request):
        register_form = RegisterForm(request.POST)
        # 判断用户post的数据的合法性,判断条件是form.py文件的RegisterForm类里定义的
        if register_form.is_valid():
            email = request.POST.get('email','')
            password = request.POST.get('password','')
            # 实例化model里的用户表类
            userprofile = UserProfile()
            # 并将上面post到的用户提交的数据进行向表字段填充
            userprofile.username = email
            userprofile.email = email
            # 对用户输入的密码加密,调用django的hashers的make_password进行加密操作(需导入)
            userprofile.password = make_password(password)
            # 最后保存
            userprofile.save()

        return render(request,'index.html',{'register_form':register_form})

最后在html文件中调用

<div class="form-group marb8 captcha1 ">
 <label>验&nbsp;证&nbsp;码</label>
{# 使用register_form来获取captcha#}
 {{ register_form.captcha }}
</div>

这里需要注意,html文件中的字段的name名称必须要和图一中验证类中的变量名称保持一致

登录验证功能:

然后在html文件中,配置错误信息的提示:

箭头处为,用户提交数据的保留,避免用户每次都要重新输入

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值