TemplateView可以根据上下文渲染指定模板,返回响应对象。它继承了ContentMixin、View、
TemplateResponseMixin
ContentMixin用于获取渲染模板的变量。你可以重写get_context_data方法返回模板渲染的参数
TemplateResponseMixin 用于渲染模板
template_name模板文名(必须设置)
template_engine模板引擎(有默认值)
response_class模板渲染类,默认是TemplateResponse
content_type内容类型,默认是text/html
get_template_names你可以重写这个方法返回模板名称
#路由
urlpatterns = [
url(r'^hello/(\w+)/$',views.HelloView.as_view(template_name='hello.html'),name='hello'),
]
#views.py
class HelloView(TemplateView):
def get(self, request, *args, **kwargs):
context = self.get_context_data(**kwargs)
context['name'] = args[0]
return self.render_to_response(context)
-
使用
class MyTemplateView(TemplateView):
# 模板文件名
template_name = 'example.html'
# 获取模板中数据
def get_context_data(self, **kwargs):
kwargs = super().get_context_data(**kwargs)
kwargs['name'] = 'xxxxx'
kwargs['title'] = "wwwww"
return kwargs
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>{{ title }}</title>
</head>
<body>
<p>
{{ name }}
</p>
</body>
</html>