模板变量,过滤器和静态文件引用
模板变量,过滤器和静态文件引用
模板路径
- 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
此时显示的时间并不是北京时间,要进行修改。
到项目目录下的settings里面最下面的TIME_ZONE = 'UTC'
进行修改
改为TIME_ZONE = 'Asia/Shanghai'
(不要问我为什么不是Beijing,改成Beijing会报错,毕竟上海比较有名吧,估计是历史原因)
修改之后:
关于模板变量的解析
- 列表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.索引的形式进行获取
结果如图:
- 字典
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
结果如图:
- 函数
def func():return 'Hello world'return render(request,'teacher/index.html',context={'func':func})#HTML
<p>传递的func是:{{ func }}</p>
说明:
函数不能设置有参数,只能设置无参数函数。因为在解析的时候解析的是变量名,而变量名是不可以携带变量的。
结果如图:
变量解析规则
- 当模板引擎遇到了变量时,会计算该变量,并以结果替换之
- 当模板引擎遇到了变量时,按照以下顺序尝试查找:
- 字典键值查找
- 属性或方法查找
- 数字索引查找
- 如果结果是一个可调用的(callabled),则调用他,结果为模板变量的值
解释:
- 如果ret = 1+1,的时候,解析出来的结果会用2代替1+1
- 字典.方法名,会解析出来方法的返回值;但是如果字典里面含有和方法重名的key的时候,会按照顺序,解析为所对应的value
- 调用函数
常用的过滤器
现在先介绍内置过滤器(自定义以后聊)
过滤器:
- 语法:{{fruits|lower}}
- 作用: 对变量进行过滤。在真正渲染出来之前,过滤器会根据功能处理好变量,然后得出结果后再替换掉原来的变量展示出来。
- 管道符号进行链式调用,比如实现一个功能,先把所有字符变成小写,把第一个字符转换成大写。{{fruits|lower|capfirst|..|..}
- 使用参数:过滤器可以使用参数,在过滤器名称后面使用冒号”:”再加上参数,比如要把一个字符串中所有的空格去掉,则可以使用cut过滤器,{{fruits|cut:" "}}
语法:{{变量名|过滤器}}
例如:
- 时间的:{{name|date:"D d M Y"}}
- 列表的:
- name|add:数字
- name|first/last
- name|slice:"num:num"
注意:不要习惯性在冒号俩边加上空格,会报错
常用的过滤器:
date和time过滤器格式:
静态文件的引用
路径设置
静态文件由内建APP'django.contrib.staticfiles'管理,调试用到,实际使用不会用到
django.contrib.staticfiles这个app被包含在INSTALL_APPS中
配置语法:
#setting.py
STATICFILES_DIRS = []
步骤:
- 在项目根目录下创建一个static,注意要分APP文件夹
- 写入
STATIC_URL = '/static/'
(默认就有) - 在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
模板变量,过滤器和静态文件引用相关推荐
- Django-2- 模板路径查找,模板变量,模板过滤器,静态文件引用
模板路径查找 路径配置 2. templates模板查找有两种方式 2.1 - 在APP目录下创建templates文件夹,在文件夹下创建模板 2.2 - 在项目根目录下创建templates文件夹, ...
- 模板路径,模板变量,过滤器和静态文件的引用
1.模板路径的查找 -查找顺序 1.优先查找settings.py 的DIRS:[os.path.join(BASE_DIR,'templates')] 2.如果APP_DIRS:TRUE 会到INS ...
- 潭州课堂25班:Ph201805201 django框架 第三课 模板路径,变量,过滤器,静态文件的引用 (课堂笔记)...
第二种方法 首先 'APP_DIRS': True, 将 app 的名字在 INSTALLED_APPS 进行注册 模板变量 传的各种数据类型,和取值 过渡器: 静态文件: 在项目文件目录 中创建 ...
- vue中 静态文件引用注意事项
(一)assets文件夹与static文件夹的区别 区别一:assets文件是src下的,所以最后运行时需要进行打包,而static文件不需要打包就直接放在最终的文件中了 区别二:assets中的文件 ...
- Django模板、配置文件、静态文件及案例实现(创建模板、设置模板查找路径、模板接收视图传入的数据、模板处理数据、BASE_DIR、DEBUG、本地语言与时区、App应用配置)
1.Django模板 网站如何向客户端返回一个漂亮的页面呢? 漂亮的页面需要html.css.js. 可以把这一堆字段串全都写到视图中, 作为HttpResponse()的参数,响应给客户端. 存在的 ...
- python怎么调用另一个py文件的变量,Python中py文件引用另一个py文件变量的方法
Python中py文件引用另一个py文件变量的方法 最近自己初学Python,在编程是遇到一个问题就是,怎样在一个py文件中使用另一个py文件中变量,问题如下: demo1代码 import requ ...
- python怎么调用另一个py文件的变量_Python中py文件引用另一个py文件变量的方法
{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...
- Python-Flask入门,静态文件、页面跳转、错误信息、动态网页模板
Python-Flask入门及路由基础请参看Python-Flask入门,路由route.项目启动.修改网址端口.获取URL地址和参数.Form数据_无敌路路帅气的博客-CSDN博客 本节重点讲述静态 ...
- vue打包静态文件名称不加hash值和不修改文件夹结构
背景 使用vue脚手架开发前端项目引用了大量的图片,导致每次打包后都有好几百兆的大小,即使改动不涉及一些静态的图片和音频,打包的结果依然会修改静态文件名.如果只更新js文件等,会报引用无效的错误.这是 ...
最新文章
- python的知识点注意事项
- Zeppelin:用于区块链应用的开源安全智能合约架构
- linux下的网络管理命令,常用linux网络管理命令(下)
- 出现opencv error: assertion failed..........错误时, 一步解决
- VI编辑器的操作模式
- python数字转换_Python实现中文数字转换为阿拉伯数字的方法示例
- 和为S的连续正数序列(双指针详解)
- vim显示python嵌套级_在Vim中为Python突出显示语法
- csv导入mysql_mysql导入超大csv指南
- 论文 | 多传感器数据深度图的融合:最近基于深度学习的方法(下)
- hnu 暑期实训之web导航
- 创业日记:进入电子商务领域,需未雨绸缪,更要步步谨慎
- iOS转前端之仿写宠物网(适配不同尺寸)
- 运维向运营转型,会是企业IT传统运维的发展方向吗?
- c语言魂斗罗小游戏代码,(搬运)魂斗罗系列游戏秘籍(包含一些解锁要数)
- 初始化一个java空数组_Java 数组的两种初始化方式
- k8s---存储之Volumes配置管理
- 为什么计算机连接不上打印机,为什么电脑连接打印机后却没反应
- 联想z5可以刷鸿蒙系统吗,联想Z5线刷刷机教程_联想Z5线刷升级更新官方系统包方法...
- HTTPS 前端劫持