【Dgango】模版
继承
① extends用法:只继承一个模版
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>{% block title %}{% endblock %}</title>
<link rel="stylesheet" href="/static/commons.css" />
<style>
.pg-header{
height: 50px;
background-color: seashell;
color: green;
}
</style>
{% block css %}{% endblock %}
</head>
<body>
<div class="pg-header">小男孩管理</div> {% block content %}{% endblock %}
<div class="pg-footer"></div>
<script src="/static/jquery.js"></script>
{% block js %}{% endblock %}
</body>
</html>
templates/master.html #母模版
{% extends 'master.html' %} <!--继承模版-->
{% block title %}DIY网站{% endblock %} <!--继承模版里面的块-->
{% block content %}
<h1>用户管理</h1>
<ul>
{% for i in u %}
<li>{{ i }}</li>
{% endfor %}
</ul>
{% endblock %}
{% block css %}
<style>
body{
background-color: red;
}
</style>
{% endblock %}
templates/tpl1.html #子版
def tpl1(request):
user_list = [1,2,3,4]
return render(request,'tpl1.html',{'u':user_list})
app01/xiews.py

②include用法 :(可以多个重复操作)
<form>
<input type="text"/>
<input type="submit"/>
</form>
templates/tag.html #母模版
{% extends 'master.html' %} <!--继承模版-->
{% block title %}DIY网站{% endblock %} <!--继承模版里面的块-->
{% block content %}
<h1>用户管理</h1>
<ul>
{% for i in u %}
<li>{{ i }}</li>
{% endfor %}
</ul>
{% include 'tag.html'%} <!--导入单独组件-->
{% include 'tag.html'%}
{% for i in u %} <!--循环4次-->
{% include 'tag.html'%}
{% endfor %}
{% endblock %}
{% block css %}
<style>
body{
background-color: red;
}
</style>
{% endblock %}
templates/tpl1.html #子板

③自定义simple_tag,filter
a、在app中创建templatetags文件夹
b、创建任意 .py 文件,如:daly.py
from django import template register = template.Library() @register.simple_tag
# 可以传入多个参数
def hanshu(a1,a2):
return a1 * a2 # filter方法:
# @register.filter
# def func(a1,a2)
app01/temlatetags/daly.py
c、在使用自定义simple_tag的tpl2.html文件中导入之前创建的 daly.py 文件名
{% load daly %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{{ name}}
{{ name|lower}}
{% hanshu 2 6 %} <!--对应daly.py中的hanshu-->
</body>
</html>
templates/tpl2.html
# 自定义simple_tag与filter优缺点:
simple_tag 中:
{% 函数名 a1 a2 a3... %}
缺点:不能作为if条件
优点:参数任意
filter 中:
{{ a1|函数名:"a2,a3" }} {{a1|函数名:数字 }}
缺点:最多两个参数,不能加空格:
优点:能作为if条件
d、在settings中配置当前app,不然django无法找到自定义的simple_tag
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app01',
]
project/settings.py
e、views.py代码
def tpl2(request):
name = 'abcABC'
return render(request,'tpl2.html',{'name': name })
app01/views.py

# 还有个inclusion_tag方法 # view视图:
from django.template import Library
register = Library()
@register.inclusion_tag('menu.html')
def menu(request):
# 从数据库中获取数据,menu_result接收并返回
...
return {'menu_result':menu_result} # menu.html:
{% load 视图文件 %}
<body>
<div class="pg-header">
头部菜单
</div>
<div class="pg-content">
<div class="menu">
<!--相当于执行def menu函数并拿到menu_resul返回值-->
{% menu request %}
...
</div>
<div class="content">
{% block content %}{% endblock %}
</div>
</div>
{% block js %} {% endblock %}
</body>
</html>
【Dgango】模版的更多相关文章
- 创建ABPboilerplate模版项目
本文是根据角落的白板报的<通过ABPboilerplate模版创建项目>一文的学习总结,感谢原文作者角落的白板报. 1 准备 开发环境: Visual Studio 2015 update ...
- 使用boilerplate模版创建解决方案
返回总目录<一步一步使用ABP框架搭建正式项目系列教程> 话不多说,让我们开始干吧!对于还没有接触ABP框架或者接触时间还不是很长的小伙伴来说,我建议还是使用官方建议的做法,那就是到ABP ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(29)-T4模版
系列目录 本节不再适合本系统,在58,59节已经重构.请超过本节 这讲适合所有的MVC程序 很荣幸,我们的系统有了体验的地址了.演示地址 之前我们发布了一个简单的代码生成器,其原理就是读取数据库的表结 ...
- 构建自己的PHP框架--构建模版引擎(1)
前段时间太忙,导致好久都没有更新博客了,今天抽出点时间来写一篇. 其实这个系列的博客很久没有更新了,之前想好好规划一下,再继续写,然后就放下了,今天再捡起来继续更新. 今天我们来说一下,如何构建自己的 ...
- asp.net读取模版并写入文本文件
本文要介绍的是ASP.NET怎样读写文本文件,但更重要的是实现的过程.使用的工具是Visual Studio 2015 ,.NET版本是4.6.1 .一共建立的2个项目,HoverTreePanel和 ...
- [bzoj1269][AHOI2006文本编辑器editor] (splay模版题 or pb_ds [rope]大法)
Description 这些日子,可可不和卡卡一起玩了,原来可可正废寝忘食的想做一个简单而高效的文本编辑器.你能帮助他吗?为了明确任务目标,可可对“文本编辑器”做了一个抽象的定义: 文本:由0个或 ...
- C++ 模版
函数模版 #include <iostream> using namespace std; template<typename T> T add(T t1, T t2) { r ...
- Python 【第十一章】 Django模版
1.直接传值 urls.py """mysite URL Configuration The `urlpatterns` list routes URLs to view ...
- Django模版语言 格式化显示 后台datatime()时间
Django模版语言 格式化显示 后台datatime()时间 场景描述:
随机推荐
- unity_实用小技巧(相机跟随两个主角移动)
在两人对战的游戏中,有时候我们希望能看清楚两玩家的状态,这时我们需要让相机跟随玩家,可是我们不能让相机只跟随一个玩家移动,这时我们可以取两玩家的中点作为相机的位置.方法如下: public Trans ...
- unity之初级
- HDU 6134
题意略. 思路: 我们先不考虑[(i , j) == 1],在此情况下,其实这个值是sum( [ (i , j) == 1,2,3,....,n ] ) 这些情况.我们要求的仅仅是其中的第一部分而已. ...
- poj2528 Mayor's posters(线段树区间修改+特殊离散化)
Description The citizens of Bytetown, AB, could not stand that the candidates in the mayoral electio ...
- hdu 1269 迷宫城堡(trajan判环)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1269 题意:略 题解:trajan模版直接求强连通分量. #include <iostream& ...
- webpack,vue中定义的别名怎么在模板, css sass less的图片地址上使用
webpack 的别名好处大家也都了解, 但是 vue 的模板中, 对图片地址使用别名时总出现问题, 很久时间的时间都没找到解决办法, 一度认为是 webpack 的原因... alias: { 's ...
- java多线程之Executor框架
Executor框架简介 Executor框架的结构 Executor框架主要由3大部分组成: 任务: 包括被执行的任务需要实现的接口:Runable 接口.Callable接口: 任务的执行: 包括 ...
- redis.windows.conf配置详解
redis.windows.conf配置详解 转自:https://www.cnblogs.com/kreo/p/4423362.html # redis 配置文件示例 # 当你需要为某个配置项指定内 ...
- Linux下编译提示arm-none-linux-gnueabi-gcc: command not found
自己的Linux系统中已经正确安装了交叉编译器arm-2009q3,路径设置正常. 但是在使用arm-none-linux-gnueabi-gcc编译时提示 arm-none-linux-gnuea ...
- 归并排序、jensen不等式、非线性、深度学习
前言 在此记录一些不太成熟的思考,希望对各位看官有所启发. 从题目可以看出来这篇文章的主题很杂,这篇文章中我主要讨论的是深度学习为什么要"深"这个问题.先给出结论吧:"深 ...