首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

django网站的用户注册

1、注册页面的配置

通常引入一个新的html页面需要如下配置:

(1)在url中配置页面,并且给一个名称

url(r'^register/$', RegisterView.as_view(),name='register')

同时要引入view中的处理前端响应的类

fromusers.viewsimportLoginView,RegisterView

(2)配置html中的静态文件如css、js、image

html>

{%loadstaticfiles%}

head>

在文件开头引入{%loadstaticfiles%},并且在所有静态文件中使用如下方法:href="{%static'css/reset.css'%}"

(3)使用github上的第三方验证码工具django-simple-captcha 0.4.6版本

创建form类

classRegisterForm(forms.Form):

email = forms.EmailField(required=True)

password = forms.CharField(required=True)

captcha = CaptchaField()

form当中有一个机制,就是允许自己定制用户输入错误时候的提示信息返回前端页面

captcha = CaptchaField(error_messages={'invalid':'验证码错误'})

引入

url(r'^captcha/', include('captcha.urls'))

配置前端form表单:

formid="email_register_form"method="post"action="{%url'register'%}"autocomplete="off">

2、注册流程,把用户填写信息取出来并保存到数据库

ifregister_form.is_valid():

user_name = request.POST.get('username','')

pass_word = request.POST.get('password','')

user_profile = UserProfile()

user_profile.username = user_name

user_profile.email = user_name

user_profile.password = make_password(pass_word)

user_profile.save()

3、给用户发送验证邮件

在app中新建utils文件夹用于存放常用的函数

新建email_send.py,以及def send_register_email(email,type=0)

给用户发送的链接是一串随机字符串,生成函数:

defrandom_str(randomlength=8):

str =''

chars ='qwertyuiopasdfghjklzxcvbnmQWERTYUIOPLKJHGFDSAZXCVBNM1236547890'

length =len(chars)-1

random = Random()

foriinrange(randomlength):

str+=chars[random.randint(,length)]

returnstr

发送之前要保存到数据库:

defsend_register_email(email,send_type='register'):

email_record = EmailVerifyRecord()

code_str = random_str(16)

email_record.code = code_str

email_record.email = email

email_record.send_typ = send_type

email_record.save()#先把要发送的信息保存到数据库

同时发送者邮箱需要在settings中设置:

发送邮件全部代码;

classRegisterView(View):

defget(self,request):

register_form = RegisterForm()

returnrender(request,'register.html', {'register_form':register_form})

defpost(self,request):

register_form = RegisterForm(request.POST)

ifregister_form.is_valid():

user_name = request.POST.get('email','')

pass_word = request.POST.get('password','')

user_profile = UserProfile()

user_profile.username = user_name

user_profile.email = user_name

user_profile.is_active =False

user_profile.password = make_password(pass_word)

user_profile.save()

send_register_email(user_name,'register')

returnrender(request,'login.html')

else:

returnrender(request,'register.html',{'register_form':register_form})

4、用户点击激活链接,修改用户的登录状态

配置激活页面url:

url(r'^active/(?P.*)/$', ActiveUserView.as_view(),name='user_active')

5、当用户的状态为已经激活时,用户可以登录。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180721G0IYQM00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券