• 有关django的CBV


    有关django的CBV

    在学习django之初,都是一个视图函数对应一个url,当视图函数多的时候,会写不过来。使用类视图函数CBV,可以简化接口,让代码更简洁

    以下是写法,直接拷贝去用

    基本写法

    1. 创建app的路由连接(路由分发,可选)

      from django.conf.urls import url,include
      # 导入include
      
      urlpatterns = [
          # 指定分发的app目录名称
          url(r'^app01/',include("app01.urls")),
      ]
      
    2. 在应用下写分路由

      from django.conf.urls import url,include
      from app01 import views
      urlpatterns = [
          url(r'^login/', views.Login.as_view()),
      ]
      
    3. 书写类视图

      # views.py
      from django.shortcuts import render, HttpResponse
      from django.views import View
      # 必须导入View,as_view是View里的方法
      class Login(View):
      	# 会自动识别get方法,post方法
          def get(self,request):
              return render(request,'index.html')
      
          def post(self,request):
              return HttpResponse('OK')
      
      

    添加装饰器

    给类和类中的方法添加装饰器,需要特殊的姿势

    1. 在视图函数py文件中导入模块

      from django.utils.decorators import method_decorator
      
    2. 书写装饰器,以下为模板

      def outer(func):
          def inner(request, *args, **kwargs):
              print(request.method)
              rep = func(request, *args, **kwargs)
              return rep
          return inner
      
    3. 给类中的方法添加装饰器

      @method_decorator(outer)
      def get(self,request):
          return render(request,'index.html')
      
    4. 给整一个类添加装饰器

      @method_decorator(outer,name="dispatch")
      class Login(View):
      	...
      

      给类或函数添加装饰器都是固定的写法,dispatch就是django默认给我们定义的方法,在执行get或者post方法之前会执行的一个方法

  • 相关阅读:
    ASP.NET 动态创建文本框 TextBox (add TextBox to page dynamically)
    SQL Server 行列转换
    NPOI把Excel导入到数据库
    Net操作Excel(终极方法NPOI)
    mongdo通用类(C#版)
    ORACLE 定时执行存储过程
    C# Excel导入、导出
    网络爬虫+HtmlAgilityPack+windows服务从博客园爬取20万博文
    Git初级使用教程
    asp.net+swfupload 多图片批量上传(附源码下载)
  • 原文地址:https://www.cnblogs.com/telecasterfanclub/p/13221212.html
Copyright © 2020-2023  润新知