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语句的情况下完成数据库的增删改查.本篇仅带 ...
随机推荐
- Vue.js - Day1
什么是Vue.js Vue.js 是目前最火的一个前端框架,React是最流行的一个前端框架(React除了开发网站,还可以开发手机App, Vue语法也是可以用于进行手机App开发的,需要借助于We ...
- 修改Linux中发送邮件中附件大小的限制
方法一: 在命令中设定postfix的message_size_limit值 (但系统重启后会失效) postconf -e "message_size_limit = 20480000&q ...
- ubuntu terminal copy paste
copy: ctrl + insert paste: shift + insert
- ARM实验3 ——串口实验
uart串口实验 实验内容: 编写UART模块程序,通过串口将信息打印到终端. 实验目的: 熟悉开发环境的使用. 掌握exynos4412处理器的UART功能. 实验平台: FS4412开发板,ecl ...
- java研发常见问题总结 1
1.java中所有类的父类是什么?他都有什么方法? Object类是所有类的直接或间接基类,如果一个类在声明时未继承基类,Java就默认其基类是Object,故Object被称为根类.该类位于java ...
- framework7 手风琴页面有滚动条时再次点开手风琴item滑动里面内容消失的解决方法
在手风琴的ul外面的div加入最小高度min-height:1000px,问题解决 示例代码: <div class="list-block accordion-list" ...
- 虚连接 tcp
由TCP 建立的连接叫做虚连接(virtual connection),这是因为它们是由软件实现的,底层的系统并不对连接提供硬件或软件支持,只是两台机器上的TCP 软件模块通过交换消息来实现逻辑...
- 【转】如何手动添加Android Dependencies包
在ADT16 之前可以在工程里面做关联,eclipse会在工程上自动添加ReferenceLibrary.新版本的ADT修改了第三方jar的导入方式,只需要在工程目录下新建libs文件夹,注意是lib ...
- Adobe CS2提供免费序列号
据Adobe官方博客报道,自2012年12月13日起,因为技术故障,该公司已停止使用Creative Suite(CS2)产品及Acrobat 7的激活服务器. 这些产品大多是7年前发布,很多已经无法 ...
- sql的where条件转换成mongdb筛选条件
解析字符串 filterModel1 and filterModel2 and (filterModel3 or filterModel4) 1.转换成mongo的筛选条件 /// <summa ...