经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Django » 查看文章
django补充CBV和FBV模式
来源:cnblogs  作者:青梦  时间:2019/10/16 11:49:52  对本文有异议
  1. django补充CBVFBV模式
    FBV模式---函数:经常用的方式
    CBV模式---
    CBVurl连接时函数名后面要接.as_view()
    class indexviews.View):
    @...
    def dispath(self,request,*arg,**kwarg):
    super...
    如果对某一种请求做处理:单一装饰器
    如果对请求做处理:dispatch单一装饰器
    注:CBV模式中的装饰器要调用method_decorator
    from django.utils.decorators import method_decorator
    在执行后台程序分辨getpost传值之前要先执行调用的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})

原文链接:http://www.cnblogs.com/wylshkjj/p/11683250.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号