python里的jango类视图

当在要做页面路由时,可以把多个路由组合成一个。
首先先引入一个包
在这里插入图片描述
然后让一个类继承这个包
在这里插入图片描述
这里用登录与注册页面举个栗子
一般登录页面时用GET方法,点击注册时将会使用POST方法提交数据并跳转注册处理页面,所以要调用父类的get方法与post方法。

class RegisterView(View):
    '''注册'''
    def get(self,request):
        '''显示注册页面'''
        return render(request,'register.html')

    def post(self,request):
        '''进行注册处理'''
        # 接受数据
        username = request.POST.get('user_name')  # 用户名
        password = request.POST.get('pwd')  # 密码
        email = request.POST.get('email')  # 邮箱
        allow = request.POST.get('allow')
        # 进行数据校验
        if not all([username, password, email]):
            # 数据不完整
            return render(request, 'register.html', {'errmsg': '数据不完整'})
        # 校验邮箱
        if not re.match(r'^[a-z0-9][\w.\-]*@[a-z0-9\-]+(\.[a-z]{2,5}){1,2}$', email):
            return render(request, 'register.html', {'errmsg': '邮箱格式不正确'})

        if allow != 'on':
            return render(request, 'register.html', {'errmsg': '请同意协议'})

        # 校验用户名是否重复
        try:
            user = User.objects.get(username=username)
        except User.DoesNotExist:
            # 用户名不存在
            user = None

        if user:
            # 用户名已存在
            return render(request, 'register.html', {'errmsg': '用户名已存在'})

        # 进行业务处理:进行用户注册
        user = User.objects.create_user(username, email, password)
        user.is_active = 0
        user.save()

        # 返回一个应答,跳转到首页
        return redirect(reverse('goods:index'))  # 首页

在这里插入图片描述
在配置路由界面需要调用as_view()函数,也就是View里面的as_view(),它就会区分你的method
(页面请求方法)来调用不用的方法。
当请求页面方法为GET方法时,就会触发父类的get方法来打开注册页面,
当请求页面方法为POST方法时,就会触发父类的post方法来打开注册处理页面。
View里面还有delete,put,options方法,可运用的后台开发中,让路由整合,更方便快捷。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值