文章目录

  • 一、Template介绍
  • 二、模板语法
  • 三、过滤器(filter)

一、Template介绍

  • Python 代码编写和 HTML 设计是两项不同的工作,大多数专业的网站开发环境都将他们分配给不同的人员(甚至不同部门)来完成
  • 设计者和HTML/CSS的编码人员不应该被要求去编辑Python的代码来完成他们的工作
  • 程序员编写 Python代码和设计人员制作模板两项工作同时进行的效率是最高的

因此,我们可以使用 Django的 模板系统 (Template System)来实现 “将页面的设计和Python的代码分离” 的这种模式

二、模板语法

1、模板语法主要由 “HTML代码+逻辑控制代码“ 来组成,

2、语法格式是:{{var_name}}

Django 模板解析非常快捷。 大部分的解析工作都是在后台通过对简短正则表达式一次性调用来完成。
这和基于 XML 的模板引擎形成鲜明对比,那些引擎承担了 XML 解析器的开销,且往往比 Django 模板渲染引擎要慢上几个数量级。

3、深度查找——万能的句点号
我们通过 context 传递的简单参数值主要是字符串,然而,模板系统能够非常简洁地处理更加复杂的数据结构,例如list、dictionary和自定义的对象。

4、参考练习
HTML文档:

{#取整个列表#}
<h1>Hello, {{ li }}</h1>{#取列表中需要的元素,按照索引来#}
<h2>Hello, {{ li.1 }}</h2>{#取字典的某个值#}
<h1>Hi, {{ dic.大招 }}</h1>{#取class类中的属性#}
<h1>姓名: {{ ani.name }}</h1>
<h1>性别: {{ ani.sex }}</h1>
<h1>年龄: {{ ani.age }}</h1>{#字符串#}
<h2>嘿!{{ test }}</h2>

views视图py文件:

# 也可以传递类
class Animal():def __init__(self,name,sex,age):self.name = nameself.sex = sexself.age = agedef query(req):li = ["路飞","索隆","娜美","乌索普","山治"]dic = {"普攻":"一刀","技能":"二刀","大招":"三刀"}#实例化类的对象ani = Animal("独角兽","male",21)# 字符串test = "welcome to my blog!"num = 10tm = datetime.datetime.now()e = []a = "<a href="">click</a>"# return render(req,"index.html",{"action":li,"d":dic,"c":ani},"t":test)  # 手动列出来return render(req,"index.html",locals())  # 全部获取

三、过滤器(filter)

1、语法格式:{{obj|filter:param}}

2、Django提供的几种filter:

  • add:给变量加上相应的值
  • addslashes:给变量中的引号前加上斜线
  • capfirst:首字母大写
  • cut:从字符串中移除指定的字符
  • date:格式化日期字符串
  • default: 如果值是False,就替换成设置的默认值,否则就是用原值
  • default_if_none:如果值是None,就替换成设置的默认值,否则就用原值

3、参考练习
HTML文档:

{#加法运算add:c.age+12#}
<h2>add:{{ ani.age|add:12 }}</h2>{#首字母大写#}
<h2>首字大写:{{ test|capfirst }}</h2>{#移除某字母:移除空格#}
<h2>移除空格:{{ test|cut:" " }}</h2>{#格式化日期#}
<h2>Y-M-D格式日期:{{ tm|date:"Y-m-d" }}</h2>{#default值设置#}
<h2>{{ e|default:"空列表" }}</h2>

views视图py文件与上文的一样

4、渲染标签: 并不是所有标签都会直接渲染,有时候需要加个safe

<h2>{{ a|safe }}</h2>
{#或者关掉autoescape#}
{% autoescape off %}<h2>{{ a }}</h2>
{% endautoescape %}

Python框架篇之Django(Template基础:模板语法、过滤器filter)相关推荐

  1. Python框架篇之Django(Template模版:标签tag、自定义filter、extend模板继承)

    文章目录 一.标签的使用(tag) 二.自定义filter和simple_tag 三.extend模板继承 一.标签的使用(tag) 1.语法格式:{% tags %} 2.提供的几种标签 {% if ...

  2. Python框架篇之Django(基本流程、命令行、配置文件)

    文章目录 一.总述 二.Django的实现流程 三.django的命令行 四.配置文件(settings) 1.MEDIA_ROOT和MEDIA_URL 2.STATIC_ROOT和STATIC_UR ...

  3. Python框架篇之Django(Django项目搭建全过程、Web框架与Django)

    文章目录 一.Web框架与Django本质 二.从安装到实现一个完整的Django项目 一.Web框架与Django本质 1.Web框架的理解 框架,特指为解决一个开放性问题而设计的具有一定约束性的支 ...

  4. Python框架篇之Django(路由系统URL、视图函数views)

    文章目录 一.路由系统(URL) 二.视图函数(views) 一.路由系统(URL) 1.URL配置 (URLconf)就像Django 所支撑网站的目录.它的本质是URL模式以及要为该URL模式调用 ...

  5. Python框架篇之Django(ORM对象关系映射)

    文章目录 一.认识ORM 二.模型常用字段类型 三.数据表的增删改查 四.配置日志 一.认识ORM 1.概念:简单来说,就是用面向对象的方式去操作数据库的创建表以及增删改查等操作. 2.ORM的优点 ...

  6. Python框架篇之Django(Models数据表的创建、数据库配置)

    文章目录 一.数据库的配置 二.Models数据表的创建 三.在Pycharm中显示 一.数据库的配置 1. django默认支持 sqlite,mysql, oracle,postgresql数据库 ...

  7. Python框架篇之Django(Models的多表操作)

    一对多 1.添加记录 #publish_id=2Book.objects.create(name="Python进阶",price=77,pub_date="2019-1 ...

  8. Django Template 网页模板(五)

    Django Template 网页模板 6. Template 网页模板 6.1 Templeate 基础知识 6.2 Templeate 小案例 6.3 Template 标签 6. Templa ...

  9. vue基础--模板语法、常用指令:v-if、v-show、v-for、虚拟DOM、v-once、v-cloak、v-text、v-html、v-bind、v-on、自定义指令

    一.模板语法 Vue.js 使用了基于 HTML 的模板语法,允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据.所有 Vue.js 的模板都是合法的 HTML,所以能被遵循规范的浏览器和 ...

最新文章

  1. 安装 Dubbo 管 理 控 制(二)
  2. java控制台next_java读取控制台输入以及next() ,nextLine(), nextInt() 和nextDouble()的比较...
  3. 黑马vue---8-10、v-cloak、v-text、v-html、v-bind、v-on的基本使用
  4. chromebook刷机_如何查看Chromebook的停产日期
  5. P2605 [ZJOI2010]基站选址
  6. 堆排序时间复杂度_图解堆结构、堆排序及堆的应用
  7. javaScript PC端网页特效
  8. [js对象]JS入门之Date对象
  9. python教程我要自学网-我要自学网--json 数据解析-python。
  10. 3 Django视图层
  11. jenkins java jar_Jenkins 安装和配置、启动jar包
  12. C++学习总结(1)
  13. @value取不到值_Bamboo window上环境变量 HOMEDRIVE 及 HOMEPATH 获取不到的问题
  14. 易筋SpringBoot 2.1 | 第十八篇:SpringBoot的JDBC异常
  15. 缺失索引自动创建语句
  16. 微软更新iOS版Skype:新增@功能,一键召唤好友
  17. 产品经理技能学习:流程图绘制及规范
  18. 《黑客帝国》代码雨——源代码
  19. 给罗永浩和王自如打个分
  20. 如何书写一份大学活动策划书?

热门文章

  1. 计算机科学与技术做什么实验,计算机科学与技术专业实验教学大纲
  2. 采用Matlab编程实现 高频强调滤波,[转载]MATLAB图像处理-基于高频强调滤波和直方均衡化图像增强...
  3. ubuntu mysql ftp_Ubuntu服务器安装ftp服务和MySQL数据库配置的一些记录
  4. 可视化界面_uniapp通过 HBuilderX 可视化界面构建项目
  5. mysql 分片 数据迁移_简述MySQL分片中快速数据迁移_MySQL
  6. 解决eclipse模块导入后不识别为java项目
  7. 使用SpringBoot+JPA报错Incorrect syntax near 'hibernate_sequence'
  8. jersey2.22.2异常java.lang.NoSuchMethodError: org.glassfish.jersey.CommonProperties.getValue
  9. 我的世界中国版服务器无限夜视,我的世界中国版怎么无限夜视_我的世界夜视药水怎么合成_我的世界怎么永久夜视...
  10. java扫描一个端口状态_java扫描端口,如何判断端口是用来做什么的(提供什么服务的)?...