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})