Django之前端模板继承
在使用Django进行web开发时,往往会构造一个基础框架模板即base.html,而后在其子模板中对它所包含站点公用部分和定义块进行重载。
首先创建一个base.html,源码为:
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="UTF-8">
- <title>{% block title %}{% endblock %}</title>
- </head>
- <body>
- <h1>My helpful timestamp site</h1>
- {% block content %}{% endblock %}
- {% block footer %}
- <hr>
- <p>Thanks for visiting my site.</p>
- {% endblock%}
- </body>
- </html>
这个叫做base.html的模板定义了一个简单的html框架文档,等会我们将在我们的站点中的页面使用它。子模板的作用就是重载、添加
或保留那些块的内容。
现在新建一个current_datetime.html模板来使用它:
- {% extends "base.html" %}
- {% block title %}The current time{% endblock %}
- {% block content %}
- <p>It is now {{current_date }}.</p>
- {% endblock %}
再新建一个hours_ahead.html模板,源码为:
- {% extends "base.html" %}
- {% block title %}Future time{% endblock %}
- {% block content %}
- <p>In {{hour_offset }} hour(s),it will be {{next_time}}.</p>
- {% endblock %}
上面的部分非html标签等会再来解释它,现在在views.py中新建两个函数,index4,与index5,分别对应这两个模板。源码为:
- def index4(req,offset):
- offset=int(offset)
- next_time=datetime.datetime.now()+datetime.timedelta(hours=offset)
- return render_to_response("hours_ahead.html",{'hour_offset':offset,'next_time':next_time})
- def index5(req):
- now=datetime.datetime.now()
- return render_to_response('current_datetime.html',{'current_date':now})
在url中的配置为:
- url(r'^hours_ahead/(\d{1,2}$)','blog.views.index4'),
- url(r'^current_datetime/$','blog.views.index5'),
现在启动服务器,在浏览器中查看效果,current_datetime.html为:
hours_ahead.html中的效果为:
如此两个html效果就显示出来了,同时也解释一下base.html中所起的作用,两个html中都使用了{% extends %}标记,
这个就是继承base.html中的内容,在使用{ % block XXXXX %} {% endblock%}时,中间的内容便是插入在使用了base.html两个标签的
中间,由此便极大的避免了代码的冗余。每个模板只包含自己独一无二的代码,无需多余的部分,而如果想要进行站点级的设计修改,仅需
修改base.html,所有其他模板会立即反映出所做修改。
上述,便是django之继承使用base.html模板。
Django之前端模板继承的更多相关文章
- Django框架之模板继承和静态文件配置
一.模板继承 目的是:减少代码的冗余 语法: {% block classinfo %} {% endblock %} 具体步骤: 1.创建一个base.html文件,2.把要显示的页面的内容写在这里 ...
- django 前端模板继承显示model中使用choices的字段
比如model中的一个class Need class Need(models.Model): """ 任务 """ party_a=mod ...
- Django学习手册 - 模板继承与导入
核心: PS:一个页面只能继承一个模板. 前置: 配置url. 配置views 关键字: 1. {% extends "index模板.html" %} 声明继承于哪个模板 ,关联 ...
- [py][mx]django模板继承-课程列表页
课程列表页分析 1,机构类型 2,所在地区 3.排序 学习人数 先分析下 纵观页面,页头页脚都一样. django提供了模板继承. 至少 不同页面的title 面包屑路径 content内容不一致,以 ...
- Django(4)html模板继承、模板导入、分页实现
1.获取所有请求信息 导入模块:from django.core.handlers.wsgi import WSGIRequest request.environ:包含所有的请求信息,可以打印看一下, ...
- python 全栈开发,Day70(模板自定义标签和过滤器,模板继承 (extend),Django的模型层-ORM简介)
昨日内容回顾 视图函数: request对象 request.path 请求路径 request.GET GET请求数据 QueryDict {} request.POST POST请求数据 Quer ...
- Django 模板 语法 变量 过滤器 模板继承 组件 自定义标签和过滤器 静态文件相关
本节目录 一 语法 二 变量 三 过滤器 四 标签Tags 五 模板继承 六 组件 七 自定义标签和过滤器 八 静态文件相关 一 语法 模板渲染的官方文档 关于模板渲染你只需要记两种特殊符号(语法 ...
- Django项目中模板标签及模板的继承与引用【网站中快速布置广告】
Django项目中模板标签及模板的继承与引用 常见模板标签 {% static %} {% for x in range(x) %}{% endfor %} 循环的序号{% forloop %} 循环 ...
- Django基础(2)--模板自定义标签和过滤器,模板继承 (extend),Django的模型层-ORM简介
没整理完 昨日回顾: 视图函数: request对象 request.path 请求路径 request.GET GET请求数据 QueryDict {} request.POST POST请求数据 ...
随机推荐
- golang test cannot find import
1. 能够import别的项目的main package. 2. 可是引用别的项目main package的时候,须要首先删除~/bin/main_package_name(你所引用的报名),不然回报 ...
- jsfiddle在线測试Html、CSS、JavaScript——http://jsfiddle.net/
jsfiddle在线測试Html.CSS.JavaScript,并展示測试结果 1.选择jQuery1.9.1 2.选择jQuery UI 1.9.2 3.Html <ul id="n ...
- SpringMVC 异常记录
在使用SpringMVC中开发过程中,遇到的一些坑,简单记录一下. 1.The request sent by the client was syntactically incorrect 从字面意思 ...
- R快速创建个文件
cat("TITLE extra line", "2 3 5 7", "11 13 17", file="ex.data" ...
- node.js零基础详细教程(6):mongodb数据库操作 以及导入导出
第六章 建议学习时间4小时 课程共10章 学习方式:详细阅读,并手动实现相关代码 学习目标:此教程将教会大家 安装Node.搭建服务器.express.mysql.mongodb.编写后台业务逻辑. ...
- jsp版本的环境变量集合
System.out.println("Protocol: " + request.getProtocol());System.out.println("Scheme: ...
- 服务器server2008网站iis7+php环境的搭建
IIS+FastCGI+PHP5_32_Gzip环境搭建-------------------0.装iis71.把php_5.32_win86解压到d:\php2.php.ini文件已经配置好不需要在 ...
- laravel文件存储Storage
use Illuminate\Support\Facades\Storage; //建立目录 Storage::disk('public')->makeDirectory(date('Y-m') ...
- unity, iterate immediate children and iterate all children
遍历所有直接子节点(immediate children): foreach (Transform child in transform) { // do whatever you want with ...
- ((void *) 0)的含义和void的一些细节
一.在c语言中,0是一个特殊的值,它可以表示:整型数值0,空字符,逻辑假(false).表示的东西多了,有时候不好判断.尤其是空字符和数字0之间. 为了明确的指出,0是空字符的含义,用用到了: (() ...