Django(补充CBV,FBV)
生活随笔
收集整理的這篇文章主要介紹了
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 retdef 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.pydef login(req):
return render(req,"index.html",{"msg":""}) //第一次請求時,會返回一個空的字符串,因為是get請求
?
轉載于:https://www.cnblogs.com/gaoyukun/p/9064779.html
總結
以上是生活随笔為你收集整理的Django(补充CBV,FBV)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: arp_annouce=2详解
- 下一篇: 【BZOJ2286】消耗战(虚树,动态规