• django补充CBV和FBV模式


    django补充CBV和FBV模式
    FBV模式---函数:经常用的方式
    CBV模式---
    CBV中url连接时函数名后面要接.as_view()
    class index(views.View):
    @...
    def dispath(self,request,*arg,**kwarg):
    super...
    如果对某一种请求做处理:单一装饰器
    如果对请求做处理:dispatch单一装饰器
    注:CBV模式中的装饰器要调用method_decorator
    from django.utils.decorators import method_decorator
    在执行后台程序分辨get和post传值之前要先执行调用的view函数中的dispatch方法进行处理
    例:
    from django import views
    from django.utils.decorators import method_decorator
    def outer(func):
    def inner(request,*args,**kwargs):
    print(request.method)
    return func(request,*args,**kwargs)
    return inner #闭包
    class Login(views.View):
    message = ''
    #分发器
    def dispatch(self, request, *args, **kwargs):
    print("eric")
    req = super(Login,self).dispatch(request,*args,**kwargs)
    print("ericc")
    return req
    @method_decorator(outer)
    def get(self,request,*args,**kwargs):
    return render(request,"login.html")

    @method_decorator(outer)
    def post(self,request,*args,**kwargs):
    user = request.POST.get("user")
    pwd = request.POST.get("pwd")
    c=1#数据库取值对照
    if c:
    request.session["is_login"] = True
    request.session["username"] = user
    req=redirect("/login/")
    return req
    else:
    message = "用户名或密码错误"
    return render(request,"login.html",{"msg":message})
  • 相关阅读:
    00045_多态-转型
    js下载文件夹的解决方案
    b/s下载文件夹的解决方案
    web下载文件夹的解决方案
    jsp下载文件夹的解决方案
    php下载文件夹的解决方案
    asp.net下载文件夹的解决方案
    KindEditor 从word中复制内容带多张图片
    CKEditor 从word中复制内容带多张图片
    Web编辑器 从word中复制内容带多张图片
  • 原文地址:https://www.cnblogs.com/wylshkjj/p/11683250.html
Copyright © 2020-2023  润新知