Django(补充CBV,FBV)

我们常用的都是FBV模式,就是url对应views.py中的函数

CBV模式:url------类

=====================

CBV实现过程:

浏览器通过url先执行Login类中的dispatch函数(分发器),dispatch会调用get/post方法
---------urls.py path('xxx',views.Login.as_view()) ---------views.py from django import views class Login(views.View): #继承于views.View类 def dispatch(self, request, *args, **kwargs): #这个函数(了解作用即可,可不写)作用类似于装饰器,参数*args, **kwargs代表可传进去多个参数
        #if request.method=="GET":
     # return HttpResponse("get方式") ret
=super(Login,self).dispatch(request,*args,**kwargs) #重写dispatch方法,相当于执行get/post方法(关键看传来的是那种请求方式,如果是get请求方式,就执行get方法) print(11111) return ret def get(self,request,*args,**kwargs): #函数名只能是get,一旦有get请求发来,就执行此函数 print("gettttttttt") return render(request,"login.html") def post(self,req,*args,**kwargs): #函数名只能是post,一旦有post请求发来,就执行此函数 user=req.POST.get("username") pwd=req.POST.get("password") rep=redirect("/index") rep.set_cookie("username",user) rep.set_cookie("password",pwd) return rep

 

POST/GET请求方式不同:

浏览器默认的方式是get形式,也是说只要不规定post请求,浏览器都是以get方式请求。post请求只有通过form表单和ajax实现。

views.py
def login(req):
  return
render(req,"index.html",{"msg":""}) //第一次请求时,会返回一个空的字符串,因为是get请求

 

转载于:https://www.cnblogs.com/gaoyukun/p/9064779.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值