编程技术文章分享与教程

网站首页 > 技术文章 正文

第16章 万万没想到Django的共享模板是这样的,你想到没?

hmc789 2024-11-25 12:47:32 技术文章 2 ℃

在开发一套系统时,为了统一性,布局会进行整体规划。一般会把页面分为上中下结构,上是指顶部,内容大多是logo和导航标签,中部是详细内容,底部是版权说明和友情链接。

在base/templates/base下,新建3个模板文件,分别是:header.html、footer.html和base.html,内容按下面进行调整。

  1. header.html文件内容
<div>有logo,有导航</div>

2. footer.html文件内容

<div>@copyright 版权所有 2019-2020</div>

3. base.html文件内容(通过include引入其他文件)

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

{# 定义标题 #}

<title>{% block title %} {% endblock %}</title>

</head>

<body>

{% include 'base/header.html' %}

{# ----定义内容--- #}

{% block content %} {% endblock %}

{% include 'base/footer.html' %}

</body>

</html>

共享模板,根据实际情况进行设计,我给出的是常用的布局方式。接下来改造index.html和detail.html的文件内容。

index.html文件内容(通过extend标签,继承基模板)

{% extends 'base/base.html' %}

{% block title %} 岗位信息列表{% endblock %}

{% block content %}

<style>

table,table tr th, table tr td {

border-collapse:collapse;

border:1px solid #a8aeb2;

padding: 2px 5px;

}

</style>

<table>

<tr>

<th>岗位名称</th>

<th>创建日期</th>

<th>操作</th>

</tr>

{% for post in posts %}

<tr>

<td><a href="">{{ post.name }}</a></td>

<td>{{ post.createDate | date:'Y-n-d H:i' }}</td>

<td><a href='{% url 'base:delete' post.id %}'>删除</a> <a href='{% url 'base:update' post.id %}'>修改</a></td>

</tr>

{% endfor %}

</table>

{% endblock %}

detail.html文件内容

{% extends 'base/base.html' %}

{% block title %} 岗位详细内容 {% endblock %}

{% block content %}

<table border="1px">

<tr>

<th>岗位名称</th>

<th>创建日期</th>

</tr>

<tr>

<td>{{ post.name }}</td>

<td>{{ post.createDate | date:'Y-n-d H:i' }}</td>

</tr>

</table>

{% endblock %}

改好之后,记得运行项目,测试一下是否有错误问题存在。模板的内容,掌握起来应该不难吧?别看代码多,实际上内容没多少的,跟着例子,一步一步学习,积小成大。

我想是时候总结一下了。

1. 知道框架的模板文件,实际上就是在html文件,其数据是静态的,可通过嵌入标签或过滤器引入动态数据。

2. 标签或过滤器,在框架内置满足不了的情况下,都可以进行自定义。自定义步骤不难,按图索引便可。

3. 为了加快模板相关功能的开发速度,Django框架封装了一些常用的模块,简化了代码,提高了工作效率,而为了让模板复用,提供了共享模板的方案,这一切都很好。

到这为止,有关Django方面的基础知识都学完了,不知你掌握了没?没的话,回去好好复习复习,有的话,继续关注接,后续更精彩,实践出真知。


Tags:

标签列表
最新留言