首先views.py导入
from django.shortcuts import render
from django.http import HttpResponse,HttpResponseRedirect
#导入类视图模块
from django.views import View
#导入数据库
from mysite.models import User
#导入类视图模块模板
from django.views.generic import TemplateView
#导入通用类视图
from django.views.generic import ListView
#定义一个通用类视图
class MyList(ListView):
    #指定模板名称
    template_name = "myapp/mytem.html"
    #指定变量名称
    # context_object_name = "user_list"
    #读取数据库  使用重写
    def get_queryset(self):
        user_list = User.objects.all()
        return user_list
#定义一个混合视图
class MyClassDef(View):
    def get(self,request):
        return render(request,"d2_index.html")
        
#定义一个类视图,用来渲染模板文件
class MyTem(TemplateView):
    template_name = "myapp/mytem.html"
#定义一个子应用的视图方法
def myapp_index(request):
    return HttpResponse("子应用的视图方法")
#定义类视图
class MyView(View):
    hello = ‘你好‘
    def get(self,request):
        return HttpResponse(self.hello)
    def post(self,request):
        return HttpResponse("POST方法")
    def put(self,request):
        return HttpResponse("put方法")
    def delete(self,request):
        return HttpResponse("delete方法")
#定义继承类
class MySon(MyView):
    def get(self,request):
        return HttpResponse(MyView.hello)
然后建立子应用的urls.py路由文件
from django.urls import path,re_path
from myapp.views import myapp_index,MyView,MySon,MyTem,MyList,MyClassDef
#导入类视图模块模板
from django.views.generic import TemplateView
# 写路由配置列表
urlpatterns = [
    path("/myapp_index",myapp_index),
    #定义一个类视图的路由,必须用as_view()方法来初始化类
    path("/myview",MyView.as_view(hello="你好啊")),
    path("/myson",MySon.as_view()),
    path("/mytem",MyTem.as_view()),
    path("/mytem_one",TemplateView.as_view(template_name="myapp/mytem.html")),
    path("/mylist",MyList.as_view()),
    path("/myclassdef",MyClassDef.as_view()),
]
原文:https://www.cnblogs.com/xcsg/p/10397137.html