008---Django的模版层
python的模板:HTML代码+模板语法
<!--模版语法之变量-->
<h1>Index </h1>
<p>{{ name }}</p>
<p>{{ num }}</p>
<p>{{ list1 }}</p>
<p>{{ info }}</p>
<p>{{ b }}</p>
<p>{{ alex }}</p>
<p>{{ egon }}</p>
<p>{{ p_list }}</p>
<p>{{ money }}</p>
<p>{{ flag }}</p>
<p>{{ null_list }}</p>
<hr>
<!--模版语法之深度查询 .字符-->
<p>列表:{{ list1.1 }}</p>
<p>字典:{{ info.name }} {{ info.age }}</p> <p>对象:{{ alex.name }} {{ alex.age }}</p>
<p>{{ p_list.1.name }} {{ p_list.1.age }}</p>
<!--模版语法之过滤器-->
<p>时间:{{ t|date:"Y-m-d H:i:s" }}</p>
<!--全局 settings.py DATETIME_FORMAT = 'Y-m-d H:i:s' USE_L10N = True -->
<!--如果一个变量是false或者为空,使用给定的默认值。否则,使用变量的值。例如:-->
<p>None值:{{ money|default:'数据为空' }}</p>
<p>False:{{ flag|default:'关闭' }}</p>
<p>空列表:{{ null_list|default:'无' }}</p>
<p>文件大小:{{ file_size|filesizeformat }}</p> <p>截取字节数:{{ text|truncatechars:16 }}</p>
<p>截取字符数:{{ text|truncatewords:2 }}</p> <p>链接:{{ link }}</p>
<h1>转义:{{ link|safe }}</h1> # 防止xss攻击, <p>加法:{{ list1.1|add:111 }}</p>
标签看起来像是这样的: {% tag %}。标签比变量更加复杂:一些在输出中创建文本,一些通过循环或逻辑来控制流程,一些加载其后的变量将使用到的额外信息到模版中。一些标签需要开始和结束标签 (例如{% tag %} ...标签 内容 ... {% endtag %})。
<!--模版语法之标签-->
<h1>for 标签</h1>
{% for i in list1 %}
<p>{{ i }}</p>
{% endfor %}
<hr>
{% for key in info %}
<p>{{ key }}</p>
{% endfor %}
<hr>
{% for person in p_list %}
<p>{{ forloop.counter1 }} {{ person.name }} {{ person.age }}</p>
{% endfor %}
<hr>
{% for null in null_list %}
{% empty %}
<p>无内容</p>
{% endfor %}
<hr>
<h1>if 标签</h1>
{% if money %}
<p>土豪,我们做朋友吧</p>
{% else %}
<p>穷光蛋</p>
{% endif %}
<hr>
<h1>with 标签</h1>
{% with p_list.1.name as n %}
{{ n }}
{% endwith %}
<hr>
<h1>csrf 标签</h1>
{% csrf_token %}
自定义标签和过滤器
1、在settings中的INSTALLED_APPS配置当前app,不然django无法找到自定义的simple_tag.
2、在app中创建templatetags模块(模块名只能是templatetags)
3、创建任意 .py 文件,如:my_tag_filter.py
#! /usr/bin/env python
# -*- coding: utf-8 -*-
# __author__ = "ziya"
# Date: 2018-10-22 from django import template # 固定
register = template.Library() # 自定义过滤器 只能两个参数 但是可以作为if 的变量
@register.filter
def multi_fliter(x,y): return x*y # 自定义标签 可以传多个参数 不可以作为if 的变量
@register.simple_tag
def multi_tag(x,y):
return x*y
4、在使用自定义simple_tag和filter的html文件中导入之前创建的 my_tag_filter.py
{% load my_tag_filter %} # 写在最顶端
<hr>
<h1>自定义过滤器</h1>
<p>{{ num|multi_fliter:20 }}</p>
<p>自定义标签</p>
<p>{% multi_tag 10 10 %}/p>
008---Django的模版层的更多相关文章
- 63、django之模版层(template)
上篇主要介绍了django的MTV模型,主要介绍了视图层之路由配置系统url分发和视图层之视图函数view,本篇主要讲解MTV模型中的模版层template. 模版层(template) 一.模版简介 ...
- django之模版层(template)
上篇主要介绍了django的MTV模型,主要介绍了视图层之路由配置系统url分发和视图层之视图函数view,本篇主要讲解MTV模型中的模版层template. 本篇导论: 模版简介 模版之变量 模版之 ...
- Django之模版层
一.模版简介 你可能已经注意到我们在例子视图中返回文本的方式有点特别,也就是说,HTML被直接硬编码在python代码之中. def current_datetime(request): now = ...
- Django 之模版层
一.模板简介 将前端页面和Python 的代码分离是一种的开发模式. 为此 Django专门提供了模板系统 (Template System,即模板层)来实现这种模式. Django 的模板 = HT ...
- Django day06 模版层(二) 过滤器 标签
一: 模板语言之过滤器: " | " 前后的区分: 前面的是函数的第一个参数, 后面的是python的一个函数, 冒号后面的是第二个参数例: <p>过滤器之默认值:{ ...
- Django day06 模版层(一) 变量和深度查询
一.模版语法之变量: 1 - {{ 变量 }} ******重要*******{#这个相当于print了该变量#} def index(request): name = 'prince' #字符串 ...
- Django之模版层-语法:标签 {% %}
标签 {% %} for循环以及for..empty.. <h4>for标签</h4> {% for i in lis %} <p>{{ i }}</p> ...
- 6.-Django设计模式及模版层
一.MVC (java等其他语言) MVC代表Model-view-Contorller(模型-视图-控制器)模式 M模型层主要用于对数据库层的封装 V视图层用于向用户展示结果 C控制器用于处理请求. ...
- 第三章:模版层 - 1:Django模板语言详解
本节将介绍Django模版系统的语法.Django模版语言致力于在性能和简单性上取得平衡. 如果你有过其它编程背景,或者使用过一些在HTML中直接混入程序代码的语言,那么你需要记住,Django的模版 ...
- 64、django之模型层(model)--建表、查询、删除基础
要说一个项目最重要的部分是什么那铁定数据了,也就是数据库,这篇就开始带大家走进django关于模型层model的使用,model主要就是操纵数据库不使用sql语句的情况下完成数据库的增删改查.本篇仅带 ...
随机推荐
- ArcMap如何修改地图坐标系统
有时候,地图投影坐标需要作出修改,使得符合要求,不然空间参考不一样无法进行进一步的操作,分析等!下面介绍arcgis地图投影坐标的修改! 1.首先,将地图数据导入,这里我导入的是广西的边界图bound ...
- ZIP文件压缩和解压
最近要做一个文件交互,上传和下载, 都是zip压缩文件,所以研究了下,写了如下的示例 注意引用 ICSharpCode.SharpZipLib.dll 文件 该dll文件可以到官方网站去下载, 我这 ...
- 如何利用PHP语言压缩图片?PHP入门教程
PHP可以控制缩略图清晰度和缩略图之后产生音量的产生.下面我们就来看看如何使用PHP优化我们的压缩图像. PHP应用程序的开发往往涉及生成缩略图,使用PHP生成缩略图的过程本身并不难,但你知道PHP ...
- 洛谷 P1849 [USACO12MAR]拖拉机Tractor
题目描述 After a long day of work, Farmer John completely forgot that he left his tractor in the middle ...
- phpStudy:使用localhost无法访问的解决方案
今天遇到新的问题,很有意思,当使用Localhost时,发现报403错误: 百度找到问题所在:没有权限问题 所以我们打开phpStudy,找到配置文件“vhosts-conf”,看到的情况是这样的 接 ...
- 关于定义顺序和内存分配的关系--记一道不严谨的C语言题
include<stdio.h> #include<iostream> int main() { char a[] = "123"; char b[] = ...
- 前端js限制上传文件类型及大小(1)
<html> <head> <meta http-equiv="Content-Type" content="text/html; char ...
- 【CCPC-Wannafly Winter Camp Day3 (Div1) D】精简改良(状压DP)
点此看题面 大致题意: 给你一张图,定义\(dis(i,j)\)为\(i\)与\(j\)的最短距离,现要求删去若干条边,使得图仍然联通,且\(\sum_{i=1}^n\sum_{j=i+1}^ndis ...
- 【CCPC-Wannafly Winter Camp Day4 (Div1) I】咆咆咆哮(三分+贪心)
点此看题面 大致题意: 有\(n\)张卡牌,每张卡牌有两种用法:使场上增加一个伤害为\(a_i\)的生物,或使场上所有生物伤害增加\(b_i\).求最大总伤害. 三分 我们可以三分使用\(a_i\)的 ...
- 字符串比较操作类StringComparer
StringComparer这个字符串比较操作类.它继承了四种接口IComparer, IEqualityComparer, IComparer<string>, IEqualityCom ...