Django视图的理解

视图

views.py -->视图文件

视图函数(FBV)和视图类(CBV)

视图函数:在路由path()内 直接调用,路由对象内部存储对应关系(键值对):路由标识符 ==> 对应函数

视图类:在路由path()通过as.view() 调用,路由对象内部存储对应关系(键值对):路由标识符 ==> as.view()方法的返回值

CBV与FBV的本质是一样的,只是CBV套了一层壳

 Django开发目前常用场景是非前后端的项目多应用FBV,前后端分离、小程序等API项目结合 DRF,使用CBV较多

做三件事

1. 参数

  • request对象 == WSGIRequest类的对象(内部提供一些方法),读取请求相关的所有数据
  • v1,v2 或 *args, **kwargs 用户接收动态路由中的参数
# path('info/<int:v1>', view.info)
def info(request, v1):
  returan HttpResponse("...")

#  path('info/<int:v1>', view.InfoView.as_view())
class InfoView(View):
    ...
    def get(self, request, v1):
        return HttpResponse("...")

2. 业务处理

 获得数据后,完成业务逻辑比如:登录、注册、分析数据、处理数据、上传EXCEL、删除数据库等

3. 返回值

 将完成业务处理的数据或结果组装构建成响应头(浏览器需要的)和响应体(浏览器页面展示的)

  • HttpResponse
  • JsonResponse
  • render
  • redirect(重定向)没有响应体,只有响应头。301(永久)与302(临时)对开者来说只是返回编码的不同
class HttpResponseRedirect(HttpResponseRedirectBase):
    status_code=302 #临时重定向
class HttpResponsePermanentRedirect(HttpResponseRedirectBase):
    status_code=301 #永久重定向

 

posted @ 2025-05-11 19:55  学习是一生要做的事  阅读(29)  评论(0)    收藏  举报