模板变量,过滤器和静态文件引用

模板变量,过滤器和静态文件引用

模板路径

  • Djiango先到settings里面找templates下的DIRS查看是否有路径,也是从上往下依次寻找,找到就返回。
  • 如果DIRS没有,就到APP_DIRS里面寻找。但是APP要先在INSTALLED_APPS里面进行注册然后根据INSTALLED_APPS里面从上往下顺序依次寻找。

模板变量

  • 动态页面:随时间改变会改变相应数据内容等(并不是JS就是动态页面)
  • 静态页面:反之

  • 语法:{{变量名}},变量名命名规则和py变量一样,但是却不能以下划线_开头;注意避免关键字。

例如编写显示时间:

from datetime import datetimedef index(request):now = datetime.now()return render(request,'teacher/index.html',context={'now' : now})#HTML
<p>当前时间是:{{now}}</p>
#注意,俩个大括号里面的now对应的是context里的key的now

1488523-20190327125009506-1650294433.png

此时显示的时间并不是北京时间,要进行修改。
到项目目录下的settings里面最下面的TIME_ZONE = 'UTC'进行修改
改为TIME_ZONE = 'Asia/Shanghai'
(不要问我为什么不是Beijing,改成Beijing会报错,毕竟上海比较有名吧,估计是历史原因)

修改之后:
1488523-20190327125451894-1340596529.png

关于模板变量的解析

  • 列表list
    lt = [0,1,2]return render(request,'teacher/index.html',context={'lt':lt})#HTML
<p>传递的列表是:{{ lt }}</p>
<p>列表下标是1的元素是:{{ lt.1 }}</p>

说明:
传递列表的时候获取某个元素要使用list_name.索引的形式进行获取

结果如图:
1488523-20190327130703744-539489579.png

  • 字典
dt = {'name' : '小明','age' : 1}return render(request,'teacher/index.html',context={'dt':dt})#HTML
<p>传递的字典是:{{ dt }}</p>
<p>传递的字典['name']是:{{ dt.name }}</p>

说明:同样是通过dt_name.key的形式获取某个value

结果如图:

1488523-20190327131828761-1052000141.png

  • 函数
    def func():return 'Hello world'return render(request,'teacher/index.html',context={'func':func})#HTML
<p>传递的func是:{{ func }}</p>

说明:
函数不能设置有参数,只能设置无参数函数。因为在解析的时候解析的是变量名,而变量名是不可以携带变量的。

结果如图:
1488523-20190327132835807-1071729687.png

变量解析规则

  1. 当模板引擎遇到了变量时,会计算该变量,并以结果替换之
  2. 当模板引擎遇到了变量时,按照以下顺序尝试查找:
    • 字典键值查找
    • 属性或方法查找
    • 数字索引查找
  3. 如果结果是一个可调用的(callabled),则调用他,结果为模板变量的值

解释:

  1. 如果ret = 1+1,的时候,解析出来的结果会用2代替1+1
  2. 字典.方法名,会解析出来方法的返回值;但是如果字典里面含有和方法重名的key的时候,会按照顺序,解析为所对应的value
  3. 调用函数

常用的过滤器

现在先介绍内置过滤器(自定义以后聊)

过滤器:

  • 语法:{{fruits|lower}}
  • 作用: 对变量进行过滤。在真正渲染出来之前,过滤器会根据功能处理好变量,然后得出结果后再替换掉原来的变量展示出来。
  • 管道符号进行链式调用,比如实现一个功能,先把所有字符变成小写,把第一个字符转换成大写。{{fruits|lower|capfirst|..|..}
  • 使用参数:过滤器可以使用参数,在过滤器名称后面使用冒号”:”再加上参数,比如要把一个字符串中所有的空格去掉,则可以使用cut过滤器,{{fruits|cut:" "}}

语法:{{变量名|过滤器}}
例如:

  • 时间的:{{name|date:"D d M Y"}}
  • 列表的:
    • name|add:数字
    • name|first/last
    • name|slice:"num:num"

注意:不要习惯性在冒号俩边加上空格,会报错

常用的过滤器:

1488523-20190327151640431-900264333.png

date和time过滤器格式:

1488523-20190327151734647-501497144.png

静态文件的引用

路径设置

静态文件由内建APP'django.contrib.staticfiles'管理,调试用到,实际使用不会用到
django.contrib.staticfiles这个app被包含在INSTALL_APPS中
配置语法:

#setting.py
STATICFILES_DIRS = []

步骤:

  1. 在项目根目录下创建一个static,注意要分APP文件夹
  2. 写入STATIC_URL = '/static/'(默认就有)
  3. 在settings最下面加入STATICFILES_DIRS = [os.path.join(BASE_DIR,'static')]

静态文件引用

{% load static %}#写在模板顶部#导入的时候
src = "{% static 'app_name/img/name.jpg' %}"
如此类推

转载于:https://www.cnblogs.com/pygive/p/10607779.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/394551.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

antd option宽度自适应_WordPress文章中添加自适应宽度的表格——墨涩网

WordPress文章中添加自适应表格&#xff0c;前面写文章的时候需要用到表格来表达阵列信息&#xff0c;但是在WordPress添加表格不想是在office中那样方便&#xff0c;需要借助插件或者代码才可以实现&#xff0c;今天分享一个不需要安装插件纯代码实现WordPress文章中添加自适应…

OO第一单元总结

OO第一单元总结 第一次作业总结 这是我第一次接触Java和面向对象思想&#xff0c;最一开始&#xff0c;我建立了简单的类和对象的概念&#xff0c;多亏了第一次作业难度和复杂度较低&#xff0c;我才没有崩掉hhh。 第一次作业我只分了三个类&#xff0c;一个main&#xff0c;一…

接口开发指的是什么_企业在什么情况下要选择定制开发软件

软件定制开发是指软件开发商依据我们的需求停止量身定制的开发&#xff0c;软件定制开发相关于单纯产品的施行周期长、本钱高、风险大。假如根据定制开发的工作量或水平来分&#xff0c;我们能够分为完整定制开发和局部定制开发&#xff0c;完整定制开发是指软件开发公司依据我…

计算机没有搜索筛选功能,EXCEL中筛选工具怎么没有搜索功能

EXCEL中筛选工具怎么没有搜索功能卡饭网本站整理2018-04-01excel是一款数据处理工具&#xff0c;可以在众多的数据中找到想要的经过处理之后的数据&#xff0c;而最直接方便的功能就是筛选。请阅读下文&#xff0c;了解如何对数据进行筛选。如下图所示的学生成绩中&#xff0c;…

51nod 1851 俄罗斯方块(思维题)

分析&#xff1a;假设n>m&#xff0c;m为1,2单独讨论下&#xff0c;否则可以用第二行第一个把所有黑块搞到2x2的格子里&#xff0c;不断用凸出来的那个角一列一列把黑的变白就行了。然后只要黑色有偶数块都可以构造出来。复杂度O(nm) #include <iostream> #include &l…

gprof, Valgrind and gperftools - an evaluation of some tools for application level CPU profiling on

2019独角兽企业重金招聘Python工程师标准>>> In this post I give an overview of my evaluation of three different CPU profiling tools: gperftools, Valgrind and gprof. I evaluated the three tools on usage, functionality, accuracy and runtime overhead…

xp计算机属性打不开,xp系统我的电脑右键属性打不开怎么办

在使用xp系统过程中,我们经常需要打开“我的电脑”右键属性,查看系统信息以及进行虚拟内存、性能方面的设置,不过有深度技术ghost xp sp3纯净版用户右键点击我的电脑,发现右键菜单中的“属性”打不开,出现这个问题通常是注册表禁用了这个属性,下面小编跟大家介绍xp系统我的电脑…

状态机学习(二)解析INI文件

题目来自<系统程序员成长计划> 作者:李先静. 状态变化如下 #include <string> #include <iostream> using namespace std;string s "[GRP]\n\ name def \n\ data 2016.11.29 \r\n\ ; this is a comment \r\n\ str this is a test \n\ [zhangshan]…

接口之用例编写、验证

一、用Excel编写用例&#xff08;xlsx格式&#xff09; 截图仅供参考&#xff0c;实际用例编写需要根据实际情况来。 二、用例加载、验证 1、数据的加载 import xlrd,xlwt #python操作excel主要用到xlrd和xlwt这两个库&#xff0c;即xlrd是读excel&#xff0c;xlwt是写excel的库…

repcached配置与简单測试

安装libevent-devel进行configure。安装在文件夹/usr/local/repcached下编译安装完毕启动11211节点启动11212节点编写文件验证复制&#xff08;分别向1、2节点存入数据&#xff0c;验证复制&#xff09;ruby执行结果

元祖(转载)

一.基本数据类型  整数&#xff1a;int  字符串&#xff1a;str(注&#xff1a;\t等于一个tab键)  布尔值&#xff1a; bool  列表&#xff1a;list   列表用[]  元祖&#xff1a;tuple  元祖用&#xff08;&#xff09;  字典&#xff1a;dict注&#xff1a;所…

leetcood学习笔记-226- 翻转二叉树

题目描述&#xff1a; 第一次提交&#xff1a; class Solution(object):def invertTree(self, root):""":type root: TreeNode:rtype: TreeNode"""if not root:return Nonetemp root.leftroot.left root.rightroot.right temp# root.left,…

惠普omen测试软件,双GTX1080奢华魔方PC 惠普OMEN X评测

惠普最近一段时间在游戏PC领域着力发力&#xff0c;桌面的暗影精灵家族热卖&#xff0c;如火如荼的势头终于传导到了台式机领域。而今&#xff0c;惠普也终于有了自己正统意义上的重型武器——桌面游戏台式机OMEN 900暗影精灵II 系列。今天我们就要为大家评测这款三万元的台式机…

二. linux基础命令

linux的基本命令一般有100多个&#xff0c;多练就可以了&#xff1b; 如果登陆用户是root&#xff0c;那么是#&#xff1b;如果是其他用户&#xff0c;则显示的是$ 练习&#xff1a;基本命令 1.创建一个目录/data mkdir /data ls -ld /data 2.在/data下面创建一个文件oldboy.tx…

程序员这样对待简历,你期望面试官怎么对待你?

为什么想到谈这个问题呢&#xff1f; 前段时间公司因业务扩展需要招聘几个研发、运维以及测试人员&#xff0c;在看面试者的简历时&#xff0c;发现很多人都没有认真的去对待简历&#xff0c;只是把招聘网站上的打印一下就好了&#xff01; 这就让我想问几个问题&#xff1a; 1…

mfc try catch 捕获并显示_“全栈2019”Java异常第十七章:Error该不该被捕获?

难度初级学习时间30分钟适合人群零基础开发语言Java开发环境JDK v11IntelliJ IDEA v2018.3友情提示本教学属于系列教学&#xff0c;内容具有连贯性&#xff0c;本章使用到的内容之前教学中都有详细讲解。本章内容针对零基础或基础较差的同学比较友好&#xff0c;可能对于有基础…

长春高中计算机考试时间安排,长春部分高中期末考试时间出炉!

原标题&#xff1a;长春部分高中期末考试时间出炉&#xff01;上次跟大家分享了中小学的放假时间&#xff0c;今天就来说说期末考试时间吧&#xff01;虽然有的学校时间未定&#xff0c;但是按照惯例&#xff0c;长春市各大高中高一高二年级&#xff0c;本次的期末考试时间&…

用习惯了windows系统要怎样去认识linux系统(一)

一、前言对于普通用户来说99%都使用的是windows操作系统&#xff0c;即便那些会使用linux系统的技术员来说&#xff0c;他们PC上安装的也是windows系统。linux系统只是用于服务器市场&#xff0c;可以说现在服务器市场80%使用的是linux系统。那它们两系统之间有哪些区别呢&…

VAssistX使用小窍门

日常使用中的一些VAssistX使用小窍门&#xff0c;简单总结下 一&#xff0c;修改VAssistX默认缓存文件路径&#xff0c;防止默认C盘被占用空间过大 1、 打开注册表HKCU\Software\Whole Tomato&#xff0c;新建UserDataDir&#xff0c;数值为要修改的路径&#xff0c;如下图&am…

多个 gradle 文件夹 \.gradle\wrapper\dists\ 设置gradle不是每次都下载

韩梦飞沙 韩亚飞 313134555qq.com yue31313 han_meng_fei_sha 设置gradle不是每次都下载 \.gradle\wrapper\dists\ 在你导入项目的时候&#xff0c;有个选项的&#xff1a; 你要是选了Use default gradle mapper就会下载一次&#xff0c;Use local gradle distribution就会…