做的好的网站营销微信公众号,新开传奇网站站,河北建设工程信息网公告怎么查询,wordpress调用列表第5天#xff1a;视图与模板进阶
目标
掌握视图逻辑和模板渲染#xff0c;包括不同类型的视图、自定义模板标签和过滤器#xff0c;以及模板继承和包含的概念。
任务概览
学习函数视图和类视图的使用。编写自定义模板标签和过滤器。理解模板的继承和包含机制。
详细步骤…第5天视图与模板进阶
目标
掌握视图逻辑和模板渲染包括不同类型的视图、自定义模板标签和过滤器以及模板继承和包含的概念。
任务概览
学习函数视图和类视图的使用。编写自定义模板标签和过滤器。理解模板的继承和包含机制。
详细步骤
1. 函数视图和类视图
函数视图最简单的视图类型使用Python函数定义。类视图使用面向对象的方式继承自django.views.generic中的类。
函数视图示例
# myproject/myapp/views.pyfrom django.http import HttpResponsedef home(request):return HttpResponse(Welcome to the home page.)类视图示例
from django.views import View
from django.http import HttpResponseclass HomeView(View):def get(self, request, *args, **kwargs):return HttpResponse(Welcome to the home page with class-based view.)2. 自定义模板标签和过滤器
模板标签扩展模板的能力可以包含复杂的逻辑。过滤器用于模板中用于修改变量的值。
自定义过滤器示例
# myproject/myapp/templatetags/myapp_filters.pyfrom django import templateregister template.Library()register.filter
def add_class(value, arg):return value arg在模板中使用
div class{{ some_value|add_class:new-class }}/div3. 模板继承
模板继承允许你创建一个基础模板定义通用的结构和样式然后在子模板中扩展它。
基础模板示例base.html
!-- myproject/myproject/templates/base.html --!DOCTYPE html
html langen
headmeta charsetUTF-8title{% block title %}My Site{% endblock %}/title
/head
bodyheaderh1Welcome to My Site/h1/headermain{% block content %}{% endblock %}/mainfootercopy; 2024 My Site/footer
/body
/html子模板示例
!-- myproject/myproject/templates/home.html --{% extends base.html %}{% block title %}Home Page{% endblock %}{% block content %}pThis is the home page./p
{% endblock %}4. 模板包含
模板包含允许你创建可以被多个模板重用的代码块。
包含文件示例header.html
!-- myproject/myproject/templates/header.html --headerh1Header Content/h1
/header在其他模板中使用
{% include header.html %}学习要点
理解函数视图和类视图的区别和使用场景。学会编写自定义模板标签和过滤器以扩展模板功能。掌握模板继承的概念能够创建和使用基础模板和子模板。理解模板包含的使用能够重用代码块。
每日回顾
回顾今天学习的不同类型的视图并尝试编写自己的示例。练习编写自定义模板标签和过滤器并在模板中使用它们。尝试使用模板继承和包含来改进你的模板结构。
通过今天的学习你应该对Django的视图和模板系统有了更深入的理解包括如何使用函数视图和类视图以及如何通过自定义模板标签、过滤器、继承和包含来增强模板的功能。明天我们将学习如何处理表单这是Web开发中的一个重要组成部分。