django 请求周期 与 cbv fbv

本文详细介绍了Django框架中的两种视图处理方式:基于函数的视图(FBV)与基于类的视图(CBV)。FBV提供简单的请求-响应处理,而CBV则更易于扩展和复用,支持多种HTTP请求方法如GET、POST等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.生成请求头 请求体信息 发送http请求
2.服务器解析根据请求头url的信息 url路径分发(自上而下) 
3.匹配成功执行,执行指定的views函数
URL --> 函数    FBV
URL --> 类      CBV
根据请求头中的request.method进行自动自行方法(POST,GET)

4.业务处理
- 根据个人需求自定
- 操作数据库
- 原生mysql
- ORM 
返回用户结果:
- 响应内容
-相应头
- 相应体

CBA:
继承父类Views
类中实现找到请求头method中 判断post get 方式 返回相应函数
重写父类 display 方法  每次调用都会执行这个方法 dispatch内部执行反射方法 判断请求 返回相应的函数

自带:'get', 'post', 'put', 'patch', 'delete', 'head', 'options', 'trace']

def fbv(request):
    if request.method == 'GET':
        return HttpResponse('FBV.GET')
    elif request.method == 'POST':
        return HttpResponse('FBV.POST')


from django.views import View
class CBV(View):

    def dispatch(self, request, *args, **kwargs):
        print('dispath')
        result = super(CBV,self).dispatch(request,*args,**kwargs)
        return result
        # 'get', 'post', 'put', 'patch', 'delete', 'head', 'options', 'trace']
    def get(self,request):
        # return HttpResponse('CBV.GET')
        return render(request,'cba.html')

    def post(self,request):
        print(request.body)   # b'user=kk'

        ret = HttpResponse('CBV.POST')
        ret['a1'] = 'b1'
        ret.set_cookie('c1','c2')
        """
        响应头:
            a1=b1
            cookies: c1=c2
        体:
            CBC.POST 
        """
        return ret







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值