コード例 #1
0
def regist(request):
    if request.method == "GET":
        return render(request, 'regist.html')

    elif request.method == "POST":
        username = request.POST.get('username')
        password = request.POST.get('password')
        email = request.POST.get('email')
        icon = request.FILES.get('icon')

        users = User.objects.filter(username=username)
        # print(users)
        # print(type(users))
        if users.exists():
            #
            return render(request,
                          'notice.html',
                          context={
                              'code': -1,
                              'msg': "用户名已存在",
                              'wait': 2,
                              'url': "/blog/regist"
                          })
        user = User()
        user.username = username
        user.password = make_pwd(password)
        user.email = email
        user.icon = icon
        user.resgist_time = datetime.today().strftime("%Y/%m/%d/%H/%M/%S")
        request.session["user_id"] = user.id
        request.session["user_name"] = user.username

        #生成token
        token = str(uuid.uuid4())
        user.u_token = token
        user.save()

        # 发送邮箱内部的模板并且将token值和username传过去;将邮件发给表单传过来的用户邮箱。
        subject, from_email, to = 'html', settings.EMAIL_FROM, email
        html_content = loader.get_template('activite.html').render({
            'username':
            username,
            'u_token':
            token
        })
        msg = EmailMultiAlternatives(subject, from_email=from_email, to=[to])
        msg.attach_alternative(html_content, "text/html")
        msg.send()

        cache.set('token', token, timeout=1800)

        return render(request,
                      'notice.html',
                      context={
                          'code': 1,
                          'msg': "注册成功,请尽快去邮箱激活!",
                          'wait': 3,
                          'url': "/blog/index"
                      })