Django 用户认证 用户 邮箱登录 邮箱注册 ORM or,and,not form.py FORM ModelForm Paginator 分页 HTMl JQuery 定位元素 ajax django切片 restfulapi 跨域 Ubantu Python Mysql Scrapy 爬虫 导出 Python读写 Pycharm 破解 session re sqlit3 生成式 其他 Prism 富文本 CSS Nginx 部署 请求头 抓包 协议 selenium Ubuntu 宝塔 AI Comfy-ui ollama dify open-webui Git docker
Django实现用户的注册功能
张建行 2021年10月14日 13:06 35 文章标签: Django 用户认证 用户 邮箱注册 ORM form.py FORM Python

class Register(View):
    '''
    users模块:用户注册的处理视图
    '''

    def get(self, request):
        form = RegisterForm()
        return render(request, template_name='users/register.html', context={'form': form})

    def post(self, request):
        form = RegisterForm(data=request.POST)
        if form.is_valid():
            # commit=False 是将通过验证的数据生成一个数据对象,暂时保存到内存中,不直接写入数据库,
            # 等待用set_password()方法将密码转换为哈希值后,再去保存,
            # 否则django只保存用户名不会保存密码,但可以在后台中手动修改密码
            new_user = form.save(commit=False)
            # set_password() 是将明文的密码加密成哈希值之后,再去保存,否则django只保存用户名,不保存密码
            new_user.set_password(form.cleaned_data.get('password'))
            # 等带用户密码通过set_password()加密之后再将数据写入数据库
            new_user.save()
            # 用户注册成功,重定向到用户登录页面
            return redirect('/users/login')
        return render(request, template_name='users/register.html', context={'form': form})