Django博客系统(用户注册实现)
  TEZNKK3IfmPf 2023年11月13日 61 0

1. 用户注册接口设计

1.请求方式

选项 方案
请求方法 POST
请求地址 /register/

Django博客系统(用户注册实现)

2.请求参数:表单参数

参数名 类型 是否必传 说明
mobile string 用户名
password string 密码
password2 string 确认密码
sms_code string 短信验证码

3.响应结果:HTML

响应结果 响应内容
注册失败 响应错误提示
注册成功 重定向到首页

2. 用户注册接口实现

1.注册视图

import re
from users.models import User
from django.db import DatabaseError

class RegisterView(View):

    def post(self,request):
        #接收参数
        mobile = request.POST.get('mobile')
        password = request.POST.get('password')
        password2 = request.POST.get('password2')
        smscode=request.POST.get('sms_code')

        # 判断参数是否齐全
        if not all([mobile, password, password2, smscode]):
            return HttpResponseBadRequest('缺少必传参数')
        # 判断手机号是否合法
        if not re.match(r'^1[3-9]\d{9}$', mobile):
            return HttpResponseBadRequest('请输入正确的手机号码')
        # 判断密码是否是8-20个数字
        if not re.match(r'^[0-9A-Za-z]{8,20}$', password):
            return HttpResponseBadRequest('请输入8-20位的密码')
        # 判断两次密码是否一致
        if password != password2:
            return HttpResponseBadRequest('两次输入的密码不一致')

        #验证短信验证码
        redis_conn = get_redis_connection('default')
        sms_code_server = redis_conn.get('sms:%s' % mobile)
        if sms_code_server is None:
            return HttpResponseBadRequest('短信验证码已过期')
        if smscode != sms_code_server.decode():
            return HttpResponseBadRequest('短信验证码错误')

        # 保存注册数据
        try:
            user=User.objects.create_user(username=mobile,mobile=mobile, password=password)
        except DatabaseError:
            return HttpResponseBadRequest('注册失败')

        # 响应注册结果
        return HttpResponse('注册成功,重定向到首页')

2.在进行页面提交时报403csrf问题

Django博客系统(用户注册实现)

 3.在HTML表单中添加csrf_token

Django博客系统(用户注册实现)

注意:(注释这行代码可以禁止csrf验证)

Django博客系统(用户注册实现)

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月13日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2024年05月31日   39   0   0 python开发语言
  TEZNKK3IfmPf   2024年05月31日   28   0   0 python
  TEZNKK3IfmPf   2024年05月31日   31   0   0 python
TEZNKK3IfmPf