Django基础模板层(75-76)
Django框架之模板层(d75)
一 模版语法之变量:
** locals() 会把*该*视图函数内的变量,传到模板
** return render(request, 'index.html', locals())
1 {{ 变量 }}:******重要******{#相当于print了该变量#}
只写函数名:相当于函数名(),执行该函数,打印函数返回值
2 深度查询---->统一都用句点符 .
拓展:不能调有参数的方法
二 模版之过滤器
1语法:{{第一个参数|过滤器名字:第二个参数}}
2常用过滤器:(详细用法见源码)
1 length 返回列表中元素的个数或字符串长度
2 default 如果值不存在,则使用默认值代替
3 slice 切片操作, 返回列表 # {{ 'asdikfjhih' | slice:':5' }} 返回 ‘asdik’
4 date 格式化日期 {{ ctim|date:'Y-m-d' }}
5 filesizeformat 增加数字的可读性,转换结果为13KB {{ 1024 | filesizeformat }} 返回 1.0KB
6 truncatechars 字符串字符多于指定的字符数量,那么会被截断。截断的字符串将以可翻译的省略号序列(“...”)结尾
7 truncatewords 将字符串转换为省略表达方式 {{ 'This is a pen' | truncatewords:2 }}返回 This is ...
8 safe 单独的变量我们可以通过过滤器“|safe”的方式告诉Django这段代码是安全的不必转义
9 add 给value加上一个数值 {{ user.age | add:”5” }}
三 模版之标签 : {% 标签 %}
1 for: forloop:对象(里面有好多东西:parentloop,last,first,counter....)忘记的话, 自己打印一下
empty: 被循环的对象是空,才走它
for循环可以嵌套,也可以用if
2 if:
{% if forloop.first %}
<p>第一次的我 </p>
{% elif forloop.last %}
<p>最后的我 </p>
{% else %}
<p>{{ foo }}</p>吧
{% endif %}
3 with:重命名,应用在变量名过长
********都要有结束******{%endif%} {%endfor%} {%enwith%}
四 自定义标签和过滤器
1 自定义过滤器
1 先app是不是已经在setting中注册
2 在app下创建一个templatetags(****名字不能变***)的文件夹(模块)
3 在模块下创建一个py文件,名字随意:mytag.py
4 第一步,导入template
from django.template import Library
第二步,定义一个叫register的变量=template.Library()
register = Library()
5 写一个函数,用@register.filter(name='yyy')装饰一下(可以指定别名)
def str_add(str1, str2): #一定要有返回值
# 业务逻辑很复杂
return str1 + str2
6 在模板里:(新定定义的标签,过滤器,都要重启程序)
{% load mytag %}
{{'lqz'|str_add:'nb'}}
**过滤器,可以用在if判断
2 自定义标签:
1-4:前4步,根过滤器的定义完全一样
5 只是装饰器不一样
@register.simple_tag()
def add_nb(value):
return value+'nb'
6 在模板里:(多个参数,以空格区分)
{% load mytag %}
{% add_nb 'lqz'%}
**标签不能用在if判断
五 模版导入-->写了一个好看的组件,可以复用,
1 写一个模板
2 在模板中:{% include '模板的名字'%}
六 模板的继承
1 写一个母版,留一个可扩展的区域(盒子),可以留多个盒子(留的越多,可扩展性越高)
{%block 名字%}
可以写内容
{%endblock%}
2 在子模板中使用:
{%block 名字%}
子模板的内容
{%endblock 名字%}
七 静态文件相关
1 写死静态文件:<link rel="stylesheet" href="/static/css/mycss.css">
2 使用 static标签函数:
-{%load static%}
#static返回值,会拼上传参的路径
-{% static "传参"%}
3 使用get_static_prefix 标签
-{%load static%}
#get_static_prefix返回值是:静态文件的地址,相当于/static/
-{% get_static_prefix %}css/mycss.css
Django基础模板层(75-76)的更多相关文章
- Django基础——模板层(template) (Day67)
阅读目录 变量 标签 自定义过滤器和标签 模板层(template) 你可能已经注意到我们在例子视图中返回文本的方式有点特别. 也就是说,HTML被直接硬编码在 Python代码之中. 1 2 3 4 ...
- 04-01 Django之模板层
Django之模板层 一 模板简介 在刚刚介绍完的视图层中我们提到,浏览器发送的请求信息会转发给视图函数进行处理,而视图函数在经过一系列处理后必须要有返回信息给浏览器.如果我们要返回html标签.cs ...
- python 全栈开发,Day69(Django的视图层,Django的模板层)
昨日内容回顾 相关命令: 1 创建项目 django-admin startproject 项目名称 2 创建应用 python manage.py startapp app名称 3 启动项目 pyt ...
- Django的模板层简介
Django的模板层 如果我们想要利用视图函数返回一个页面,一种比较简单的方式是利用HttpResponse()方法返回一个含有html内容的字符串: def current_datetime(req ...
- Django框架-模板层
Django框架-模板层 一.模板语法传值 1.验证是否python所有的数据类型都可以传递到前端 locals()的妙用:该方法虽然好用,但是在某些情况下会造成资源的浪费 结论:整型.浮点型.字符串 ...
- Django之模板层细说
django的模板层,基于我们前面学习的内容,也知道主要语法是{{变量相关}}{%逻辑相关%},那么具体还有哪些内容呢?且听我娓娓道来. 模板层(模板语法) 标签 过滤器 自定义标签,过滤器,incl ...
- 5、Django之模板层
一 模板简介 在刚刚介绍完的视图层中我们提到,浏览器发送的请求信息会转发给视图函数进行处理,而视图函数在经过一系列处理后必须要有返回信息给浏览器.如果我们要返回html标签.css等数据给浏览器进行渲 ...
- Django 基础 模板系统
Django模板系统 官方文档 常用语法 只需要记两种特殊符号: {% %} 'b', 'c', 'd']的话,就显示4. filesizeformat 将值格式化为一个 “人类可读的” 文件尺寸 ( ...
- 053.Python前端Django框架模板层
模板层 一 模板语法之变量 在 Django 模板中遍历复杂数据结构的关键是句点字符, 语法: {{ var_name }} [root@node10 mysite]# cat app01/urls. ...
随机推荐
- 微信小程序之点击列表的item带参数跳转界面
1.在js文件里写个界面跳转的事件处理函数gotableinfo,var index = parseInt(e.currentTarget.dataset.index); 为获取当前点击列表的下脚标, ...
- 本博客不再更新和维护,后续文章会在掘金和GitHub发布,感兴趣的小伙伴可以掘金搜索王振宇,谢谢
本博客不再更新和维护,后续文章会在掘金和GitHub发布,感兴趣的小伙伴可以掘金搜索王振宇,谢谢
- 锋利的jQuery初学(3)
jQuery详细介绍 1,$的含义:就是一个名称符号:jquery占用了两个变量:$和jquery; 2,js与jQuery的入口函数区别 (1),js的window.onload事件是等到所有内容加 ...
- Ubuntu使用命令行打印文件
Ubuntu使用命令行打印文件 正文 环境: Ubuntu 16.04.3 LTS HP Deskjet InkAdvantage 4648 准备步骤 安装Common UNIX Printing S ...
- Zend studio快捷键使用
应用场景 快捷键 功能 查看快捷键 ctrl+shift+l 显示所有快捷键列表 查看和修改快捷键 打开Window->Preferences->General->keys 修改 ...
- camelcase-hankerrank
int camelcase(string s) { int cnt=0; int a; for(int i=0;i<s.size();i++) { a=s[i]; if(65<=a& ...
- springboot2.0 springcloud 断路器仪表盘支持
springboot 1.5 的时候 springcloud 添加 断路器仪表盘 按照网上的方法是没有问题的 但是 springboot2.0的时候一直无法连接 所以需要添加 @Beanpubl ...
- himm的使用
1.设置管脚复用 himm 0x200F0100 1 himm 0x200F0104 1 2.设置GPIO_DIR himm 0x201C0400 0xff 3.设置GPIO_DATA himm 0x ...
- adb和机顶盒一些常识
1.adb install强制安装在SD卡 因为盒子/data/空间不够了.而默认apk就安装在了/data/目录下.因此需要更改默认安装位置 命令参照 进入adb shell $adb shell ...
- C++vector针对排序操作练习
目的: 定义5个学生,包含名字和分数,对成员进行从大到小排序,并输出 #include <iostream> #include <cstring> #include <v ...