password
URL
type
status
date
slug
summary
tags
category
icon
周起始
标签
是否汉化
劳碌奔波一整天,夜半更深难入眠。千愁万绪何时卸,百年归山心始闲。
Django_模板
- 模版继承与块 (Template Inheritance & Block)
- 模板继承允许定义一个骨架模板,骨架包含站点上的公共元素(如头部导航,尾部链接)
- 骨架模板里面可以定义 Block 块,每一个 Block 块都可以在继承的页面上重新定义/覆盖
- 一个页面可以继承自另一个页面
- 定义一个匿名访问页面的基础页面,基础页面中定义页头
- 添加页面 jobs/templates/base.html
项目Tree
~/Desktop/django_train/ tree -L 3
tree
.
├── db.sqlite3
├── django_train
│ ├── init.py
│ ├── pycache
│ │ ├── init.cpython-38.pyc
│ │ ├── settings.cpython-38.pyc
│ │ ├── urls.cpython-38.pyc
│ │ └── wsgi.cpython-38.pyc
│ ├── asgi.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── jobs
│ ├── init.py
│ ├── pycache
│ │ ├── init.cpython-38.pyc
│ │ ├── admin.cpython-38.pyc
│ │ ├── apps.cpython-38.pyc
│ │ ├── models.cpython-38.pyc
│ │ ├── urls.cpython-38.pyc
│ │ └── views.cpython-38.pyc
│ ├── admin.py
│ ├── apps.py
│ ├── migrations
│ │ ├── 0001_initial.py
│ │ ├── init.py
│ │ └── pycache
│ ├── models.py
│ ├── templates
│ │ ├── base.html
│ │ └── joblist.html
│ ├── tests.py
│ ├── urls.py
│ └── views.py
├── manage.py
└── templates
定义基础页
添加base.html
- 如下 jobs/templates/base.html定义了站点的标题
- 使用 block 指令定义了页面内容块,块的名称为 content,这个块可以在继承的页面中重新定义
定义列表页
添加joblist.html
Remark
{% extends 'base.html' %}
:这一行指示模板继承自名为base.html
的基本模板。这意味着当前模板将包含在基本模板的特定区块中,通常是在基本模板中有一个类似于{% block content %}
的区块,该区块会被当前模板中的内容替代。
{% block content %}
和{% endblock %}
:这是一个模板块的开始和结束标记。所有位于这两个标记之间的内容将替代基本模板中同名区块的内容。
- 内容:在
{% block content %}
和{% endblock %}
之间的内容是一段文字,它会被渲染到基本模板的content
区块中。
{% if job_list %}
和{% else %}
:这是一个条件语句,它检查变量job_list
是否存在。如果job_list
存在(即不为空),则会执行条件语句块中的代码。否则,会执行{% else %}
后面的代码。
<ul>
和</ul>
:这是无序列表的开始和结束标记,用于创建一个项目列表。
{% for job in job_list %}
和{% endfor %}
:这是一个循环语句,它遍历名为job_list
的列表,并对其中的每个元素执行循环块中的代码。
<li>
和</li>
:这是列表项的开始和结束标记,用于包装列表中的每个项目。
<a>
和</a>
:这是超链接的开始和结束标记,用于创建一个链接到职位详细信息页面的超链接。链接的文本显示职位的名称,超链接的目标 URL 通过/job/{{ job.id }}/
生成,其中{{ job.id }}
会被实际职位的 ID 值替代,这样点击链接时会跳转到相应职位的详细信息页面。
{{ job.job_name }}
和{{ job.city_name }}
:这是用于在列表项中显示职位名称和城市名称的模板变量。这些变量的值将根据循环中的当前职位对象动态替换。
{% else %}
:在条件语句中,如果job_list
为空,则执行这个分支,显示 "No jobs are available." 的消息。
总的来说,这段模板代码的作用是在网页中渲染一段文本内容,然后根据
job_list
列表中的职位信息,生成一个职位列表,每个列表项包含职位名称、城市名称以及一个超链接,该超链接允许用户点击查看职位的详细信息页面。如果 job_list
为空,将显示 "No jobs are available." 的消息。这个模板是一个网页的一部分,它将被包含在基本模板中的某个区块中。定义joblist视图
应用jobs:将joblist视图注册到urls.py中
工程django_train:将joblist视图注册到urls.py中
访问列表
👇🏻资料参考
离开乏味的皮囊,自由的灵魂在路上
- Name: Alan Hsu
- Tag: 随感、技术、经验、旅行、推荐、生活、音乐、电影 etc.
- Email:xulanzhong521gmail.com
- Twitter:@AlanHsu521
- Telegram:@AlanHsu521
- WeChat: Alan_Hsu_521
- Github: https://github.com/xsoway/
- Blog: https://xmylog.com
- Author:Alan_Hsu
- URL:https://xmylog.com/article/articles_django-2
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!
Relate Posts