前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Django源码学习-9-TemplateView 通用视图

Django源码学习-9-TemplateView 通用视图

作者头像
小团子
发布2019-08-06 16:45:16
1.4K0
发布2019-08-06 16:45:16
举报
文章被收录于专栏:数据云团数据云团

Django源码学习-8-ListView 通用视图-续

Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。

django基于类的通用视图就是将一些mixin合成为有用的通用视图。基于类的通用视图(以及任何继承了Django提供的基础类的基于类的视图)都能够以下面两种方式被配置:子类化,或者直接通过URLconf来传递参数。

代码语言:javascript
复制
from django.views.generic import TemplateView

当子类化一个类视图时,可以重写一些属性(比如template_name)或者 一些方法(比如 get_context_data)在子类中来提供一些新的值或者方 法。考虑一下,比如,一个仅仅需要展示一个模板的视图,index.html。Django有一个通用视图来完成这个功能 - TemplateView - 因此可以子类化它,然后重写模板的名称:

代码语言:javascript
复制
from django.views.generic import TemplateView

class IndexView(TemplateView):
    template_name = "index.html"

需要添加这个新的视图到URLconf配置中。因为类视图本身是一个类,把URL指向 as_view 这个类方法来替代类本身,这是类视图的入口点:

代码语言:javascript
复制
from django.urls import path
from some_app.views import IndexView

urlpatterns = [
    path('index/', IndexView.as_view()),
]

作为一个选择,如果仅仅修改类视图中少量简单的属性,可以直接传递新的属性到类本身调用 as_view 方法中:

代码语言:javascript
复制
from django.urls import path
from django.views.generic import TemplateView

urlpatterns = [
    path('index/', TemplateView.as_view(template_name="index.html")),
]
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据云团 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档