主模板:master.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>{% block title %} {% endblock %}</title> #替换位置加{% block title %}{% endblock %}
<link rel="stylesheet" href="/static/commons.css">
<style>        #全局css
.pg-header{
height: 48px;
background-color: seashell;
color: green;
}
</style>
{% block css %} {% endblock%} #自定义css 由继承模板时加入
</head>
<body>
<div class="pg-header">管理界面</div>
{% block content %} {% endblock %} #替换位置
<script src="/static/jquery.js"></script> #全局js
{% block js %} {% endblock %} #自定义js 由继承模板时加入
</body>
</html>

 

# 继承模板:

{% extends 'master.html' %}      #继承模板需要添加,继承的模板来自master.html
{% block title %}用户管理{% endblock %} #替换模板中title的位置
{% block css %}<style>...</style>{% endblock %} #自定义css
{% block content %} #替换模板中content的位置
<h1>用户管理</h1>
<ul>
{% for u in user_list %}
<li>{{ u }}</li>
{% endfor %}
</ul>
{% endblock %}
{% block js %}<script src="..."></script>{% endblock %} #自定义js

  

#模板导入:

# 需要导入的模板 tag.html
<form action="">
<input type="text">
<input type="submit">
</form>
{% extends 'master.html' %}
{% block title %}用户管理{% endblock %} {% block content %}
{% include "tag.html" %} #导入模板html {% endblock %}

  

继承 :

{% extends '模板.html' %}

{% include "模板.html" %}

引用:

{% block 模板标题 %}{% endblock %}

关于自定义模板--simple_tag

ooxx.py
from django import template #导入模板类
from django.utils.safestring import mart_safe #给simple_tag打标记 register = tmplate.Librarry()   #固定写法必须加,创建特template对象 @register.simple_tag    #加simple_tag的装饰器
def houyafan(a1,a2): #返回网页的函数
return a1 + a2
{% load ooxx.py %}   #导入simple_tag
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{% houyafan 3 5 %} #调用simple_tag函数houyafan()返回 3+5=8
</body>
</html>

注:需要在app01下创建一个文件夹名字必须是: templatetags

     再在templatetags下面建立py文件在py文件中写以上Python代码

建立步骤:

simple_tag---filter

@register.filter      #使用filter装饰器
def check(a1, a2):
return a1 + a2
<body>
{{ "zhangjian"|check:"ZJ" }} #跟django自带的filter一样 例如:{{ name | upper }}
</body>

输出:

fliter使用的场景:

{%  if  {{ “xx” |check :"yy"}} %}

优缺点对比:

Django-website 程序案例系列-8 html模板文件详解的更多相关文章

  1. DotNetBar for Windows Forms 12.9.0.0_冰河之刃重打包版及制作Visual Studio C#项目模板文件详解

    关于 DotNetBar for Windows Forms 12.9.0.0_冰河之刃重打包版 --------------------11.8.0.8_冰河之刃重打包版-------------- ...

  2. 小程序学习笔记三:页面文件详解之视图层WXML、WXS、WXSS文件

      视图层:Pages主要有 wxml页面文件和模板文件.wxs脚本文件.wxss样式文件:component是抽取出来的业务单元,同样拥有wxml页面文件和模板文件.wxs脚本文件.wxss样式文件 ...

  3. 小程序学习笔记二:页面文件详解之 .json文件

       页面配置文件—— pageName.json 每一个小程序页面可以使用.json文件来对本页面的窗口表现进行配置,页面中配置项会覆盖 app.json 的 window 中相同的配置项. 页面的 ...

  4. 第14章 启动文件详解—零死角玩转STM32-F429系列

    第14章     启动文件详解 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/firege ...

  5. vue-cli生成的模板各个文件详解(转)

    vue-cli脚手架中webpack配置基础文件详解 一.前言 原文:https://segmentfault.com/a/1190000014804826 vue-cli是构建vue单页应用的脚手架 ...

  6. 深入浅出Mybatis系列(四)---配置详解之typeAliases别名(mybatis源码篇)

    上篇文章<深入浅出Mybatis系列(三)---配置详解之properties与environments(mybatis源码篇)> 介绍了properties与environments, ...

  7. Android Studio系列教程五--Gradle命令详解与导入第三方包

    Android Studio系列教程五--Gradle命令详解与导入第三方包 2015 年 01 月 05 日 DevTools 本文为个人原创,欢迎转载,但请务必在明显位置注明出处!http://s ...

  8. 【转】Eclipse Java注释模板设置详解

    Eclipse Java注释模板设置详解   设置注释模板的入口: Window->Preference->Java->Code Style->Code Template 然后 ...

  9. 构建安全的Xml Web Service系列之wse之错误代码详解

    原文:构建安全的Xml Web Service系列之wse之错误代码详解 WSE3.0现在还没有中文版的可以下载,使用英文版的过程中,难免会遇到各种各样的错误,而面对一堆毫无头绪的错误异常,常常会感到 ...

随机推荐

  1. Photoshop 基础四 填充(渐变、油漆桶)

    一 渐变 二 油漆桶 一 渐变 技术点:选框工具(矩形.圆形.选区.反选).变换(透视).渐变 1)新建图层——>矩形选框工具,画一个矩形 2)渐变工具,定义渐变颜色 3)编辑——>变换— ...

  2. try--catch--finally中return返回值执行的顺序

    1.try块中没有抛出异常,try.catch和finally块中都有return语句 public static int NoException(){ int i=10; try{ System.o ...

  3. Luogu4338 ZJOI2018 历史 LCT、贪心

    传送门 题意:在$N$个点的$LCT$中,最开始每条边的虚实不定,给出每一个点的$access$次数,求一种$access$方案使得每条边的虚实变换次数之和最大,需要支持动态增加某个点的$access ...

  4. React-组件 & Props

    React元素可以只是DOM标签 const element = <div />; React元素也可以是用户自定义的组件: const element = <Welcome nam ...

  5. POJ1845

    这还是一道综合了许多数论的知识点的,做完也涨了不少姿势 但还是因为约数和公式这个鬼东西去找了度娘 题意很简单,就是求\(A^B\)的约数之和\(mod\ 9901\). 但是这种题意越是简单的题目越是 ...

  6. ElasticSearch实践系列(二):探索集群

    前言 为了方便ELK的逐步搭建,我们本篇文章先安装Kibana,然后用Kibana的DevTols执行命令.也可以安装elasticsearch-head运行命令. 安装Kibana 参考Instal ...

  7. PHP输入流 php://input 相关【转】

    为什么xml_rpc服务端读取数据都是通过file_get_contents(‘php://input', ‘r').而不是从$_POST中读取,正是因为xml_rpc数据规格是xml,它的Conte ...

  8. Linux内核分析——Linux内核学习总结

    马悦+原创作品转载请注明出处+<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 Linux内核学习总结 一 ...

  9. Linux实践:文件破解

    Linux实践:文件破解 标签(空格分隔): 20135321余佳源 一.掌握NOP.JNE.JE.JMP.CMP汇编指令的机器码 NOP:NOP指令即"空指令".执行到NOP指令 ...

  10. Linux内核分析(第九周)

    第一周总结1.存储程序计算机 + 函数调用堆栈 + 中断机制 2.堆栈:C语言程序运行时候必须的一个记录调用路径和参数的空间(函数调用框架/提供局部变量/传递参数/保存返回地址) 不同指令可能实现相同 ...