zoukankan      html  css  js  c++  java
  • django的视图函数

    一.视图函数view

      视图函数是接收一个请求(request对象),并返回响应的函数

      1. HttpResponse响应请求

        这个方法是返回字符串一类的,可以识别标签

      2. render响应请求

        render(request,".html",[**kwargs]),返回一个html页面,参数可以传给html中需要渲染的变量

      3. redirect响应请求

        redirect(reverse("url"),[*args]),重定向跳转到一个页面

    二.CBV和FBV

      1. FBV function base views

        在视图函数中使用函数处理请求

    def index(request):
        return HttpResponse("ok")
    简单的FBV

      2. CBV class base views

        在视图函数中使用类处理请求

    from django.views import View
    class MyView(View):
        name = "xxx"    # 这是分组传来的参数
        def post(self,request):
            return HttpResponse("post")
        def get(self,request):
            return HttpResponse("get")
    
    
    urls.py配置
    from app.views import MyView
    
    url(r"正则",MyView.as.view(name="xxx"))
    简单的CBV

    三. 给视图函数加装饰器

      1. 给FBV加装饰器

    def wrapper(fn):
        def inner(*args,**kwargs):
            print("before")
            ret = fn(*args,**kwargs)
            print("after")
            return ret
        return inner
    
    @wrapper
    def index(request):
        return HttpResponse("ok")
    FBV装饰器

      2. 给CBV加装饰器

    from django.views import View
    from django.utils.decorators import method_decorator
    
    def wrapper(fn):
        def inner(*args,**kwargs):
            print("before")
            ret = fn(*args,**kwargs)
            print("after")
            return ret
        return inner
    
    @method_decorator(warrper,name="get")  #第一种
    class MyView(View):
        name = "xxx"    # 这是分组传来的参数
    
        # 这个是分发post,get请求的,也可以用作装饰器
        def dispatch(self,request,*args,**kwargs):
                print("before")
                ret = super().dispatch(request,*args,**kwargs):
                print("after")
                return  ret
    
        @method_decorator(warrper)    # 第二种
        def post(self,request):
            return HttpResponse("post")
        def get(self,request):
            return HttpResponse("get")
    
    
    urls.py配置
    from app.views import MyView
    
    url(r"正则",MyView.as.view(name="xxx"))
    CBV装饰器

    四. request对象

      request.method  请求方式

      request.GET    get请求的所有数据,是一个字典

      request.POST     post请求的所有数据,是一个字典

      request.path    请求路径

      request.get_full_path()  获取带有参数的路径

      request.META()      请求头信息,是一个字典

    五. response对象

      HttpSponse("xxx")    响应一个字符串,可以识别标签

      render(request,".html"[**kwargs])  响应一个页面,参数可以渲染页面中需要的

      redirect()       重定向,跳转到一个页面

  • 相关阅读:
    脏数据
    LeetCode之Sort List
    COCOS2D-X FRAME动画创作随笔
    基于OpenCV性别识别
    Twitter 新一代流处理工具——Heron 该纸币Storm Limitations
    oracle设备
    苏州面对公司发布
    Weblogic监控指标
    mysql TIME_WAIT
    weblogic监控
  • 原文地址:https://www.cnblogs.com/q767498226/p/10440893.html
Copyright © 2011-2022 走看看