2019-1-2

CBV的使用

  • CBV的单继承
class BaseView(View):
def dispatch(self, request, *args, **kwargs):
    if request.session.get('username'):
        response = super(BaseView,self).dispatch(request, *args, **kwargs)
        return response
    else:
        return redirect('/login.html')

class IndexView(BaseView):
def get(self,request,*args,**kwargs):
    return HttpResponse(request.session['username'])
  • 多继承
class BaseView(object):
    def dispatch(self, request, *args, **kwargs):
        if request.session.get('username'):
            response = super(BaseView,self).dispatch(request, *args, **kwargs)
            return response
        else:
            return redirect('/login.html')

class IndexView(BaseView,View):

    def get(self,request,*args,**kwargs):
        return HttpResponse(request.session['username'])
  • CBV的验证登陆程序
urls.py

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^login/$', views.Login.as_view()),
]


views.py

from django import views
from django.utils.decorators import method_decorator

class Login(View):
    def get(self, request, *args, **kwagrs):
        return render(request, 'login.html')
        
    def post(self, request, *args, **kwagrs):
        user = request.POST.get('username')
        pwd = request.POST.get('password')
        c = Administrator.objects.filter(username=user, password=pwd).count()
        if c:
            request.session['is_login'] = True
            request.session['username'] = user
            return redirect('/index.html')
        else:
            message = "用户名或密码错误"
            return render(request, 'login.html', {'msg': message})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值