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
  1. {% extends 'base.html' %}:这一行指示模板继承自名为 base.html 的基本模板。这意味着当前模板将包含在基本模板的特定区块中,通常是在基本模板中有一个类似于 {% block content %} 的区块,该区块会被当前模板中的内容替代。
  1. {% block content %}{% endblock %}:这是一个模板块的开始和结束标记。所有位于这两个标记之间的内容将替代基本模板中同名区块的内容。
  1. 内容:在{% block content %}{% endblock %}之间的内容是一段文字,它会被渲染到基本模板的 content 区块中。
  1. {% if job_list %}{% else %}:这是一个条件语句,它检查变量 job_list 是否存在。如果 job_list 存在(即不为空),则会执行条件语句块中的代码。否则,会执行 {% else %} 后面的代码。
  1. <ul></ul>:这是无序列表的开始和结束标记,用于创建一个项目列表。
  1. {% for job in job_list %}{% endfor %}:这是一个循环语句,它遍历名为 job_list 的列表,并对其中的每个元素执行循环块中的代码。
  1. <li></li>:这是列表项的开始和结束标记,用于包装列表中的每个项目。
  1. <a></a>:这是超链接的开始和结束标记,用于创建一个链接到职位详细信息页面的超链接。链接的文本显示职位的名称,超链接的目标 URL 通过 /job/{{ job.id }}/ 生成,其中 {{ job.id }} 会被实际职位的 ID 值替代,这样点击链接时会跳转到相应职位的详细信息页面。
  1. {{ job.job_name }}{{ job.city_name }}:这是用于在列表项中显示职位名称和城市名称的模板变量。这些变量的值将根据循环中的当前职位对象动态替换。
  1. {% 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
  • WeChat: Alan_Hsu_521
notion image
notion image
 
 
 
 
 
 
 
 
 
 
 
Django学习笔记(3)-自定义详情页Django学习笔记(1)-创建项目+增删改查
Loading...