Django基础08篇 filter&tag
1.Django自带的过滤器filter
views.py中代码
def template_tags(request):
import datetime
content = '三胖content三胖contentSBcontentsbcontentcontentcontentcontentcontent'
title = 'tiTLe'
stus = ['xiaohei', 'xiaobai', 'lhy']
info = {"money":9999}
cur_date = datetime.datetime.now()
name = '小白'
age = 35
return render(request, 'template_tags.html', locals())
前端代码
{% load my_tags %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>模板标签</title>
</head>
<body>
{# Django自带#}
{# 截取字符串#}
<p>{{ content| truncatechars:30 }}</p>
{# 大写#}
<p>{{ title|upper }}</p>
{# 小写#}
<p>{{ title|lower }}</p>
{# 获取数组长度#}
<p>{{ stus|length}}</p>
{# 切片#}
<p>{{ stus|slice:"0:4"}}</p>
{# 下标取值#}
<p>{{ stus.0 }}</p>
{# 拼接字符串#}
<p>{{ stus|join:'-' }}</p>
{# 字典取值#}
<p>{{ info.money }}</p>
{# 字符串后添加#}
<p>{{ name|add:",你好" }}</p>
{# 整数加#}
<p>{{ age|add:1 }}</p>
{# 格式化时间#}
<p>{{ cur_date | date:"Y-m-d H:i:s" }}</p> {% with class="天马座" %}
<p>{{ class }}</p>
{% endwith %} </body>
</html>
template_tags.html
页面效果
2.Django自定义过滤器filter
1).在子项目(此处在user目录下)的根目录下创建templatetags目录
2).创建my_tags.py文件
3).固定导入
from django import template
from django.template import Library register = Library()
@register.filter
def mingan(content):
return content.replace("三胖", '小白') @register.filter
def mingan2(content, s):
return content.replace("三胖", s) @register.simple_tag
def mingan3(content, *agrs): # 支持多个参数
for arg in agrs:
content = content.replace(arg, '小白')
return content
5). 在html文件中导入{% load my_tags %}
6). 使用
{{ content| mingan }}
此函数只有1个参数,管道符|左侧的就是第一个参数传给管道符后的函数
{{ content| mingan2:'大傻子' }}
此函数只有2个参数,管道符|左侧的就是第一个参数传给管道符后的函数,:后是第二个参数
{% mingan3 content 'sb' 'SB' '三胖' %}
此函数支持多个参数
{% load my_tags %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>模板标签</title>
</head>
<body>
{# 自定义函数#}
<p>{{ content| mingan }}</p>
{# 自定义函数#}
<p>{{ content| mingan2:'大傻子' }}</p>
{% mingan3 content 'sb' 'SB' '三胖' %}
</body>
</html>
template_tags.html
效果如下:
Django基础08篇 filter&tag的更多相关文章
- Django 基础05篇 上下文管理和前端代码复用
一.上下文管理器 在views中重复使用的代码,可以通过上下文管理器(在setting.py文件中的TEMPLATES中配置)中实现,减少代码冗余 上下文管理器的处理流程如下: 1.先走完views里 ...
- Django基础-04篇 Django开发前后端联动
1. 写views views.py代码块 1.在前端以/article/{{ article.id }}这种方式请求后台, 参数配置在urls.py中path('category/<int:i ...
- Django基础——Model篇(三)
一 Django ORM中的概念 ORM —— 关系对象映射,是Object Relational Mapping的简写,是用来简化数据库操作的框架 Django ORM遵循Code Frist原则, ...
- Django基础——Model篇(二)
一 Model连表关系 一对多:models.ForeignKey(其他表) 多对多:models.ManyToManyField(其他表) 一对一:models.OneToOneFiel ...
- Django基础第一篇
目录 1.Django MTV框架简介 2.基础命令创建项目的配置说明 3.前后端交互案例 4.基于数据库实现数据交互增删改查 Django简介 Django框架的设计模式借鉴了MVC的思想,和MVC ...
- Django基础07篇 ORM操作
1.新增(类似数据库操作的insert) # 新增 #方式一: models.Category.objects.create(name='MySQL') #方式二: c = models.Catego ...
- Django基础——Model篇(一)
到目前为止,当程序涉及到数据库相关操作时,我们一般都会这么操作: (1)创建数据库,设计表结构和字段 (2)使用MySQLdb来连接数据库,并编写数据访问层代码 (3)业务逻辑层去调 ...
- Django基础-01篇
一.Django介绍 flask,FastApi是轻量级服务端开发框架 Django是重量级服务端开发框架 ORM:封装了数据库操作 form:校验请求数据 安装Django: pip install ...
- Django基础06篇 分页
1.导入Django自带的分页类 from django.core.paginator import Paginator 2.分页类的使用 def index(request): # return H ...
随机推荐
- Java读取SQL server数据库
要打开SQL server 的三个服务,然后再执行代码. package com.sql; import java.sql.SQLException; import java.sql.Statemen ...
- anaconda同时集成Python2 和 Python3
参考帖子,亲测有效: 利用anaconda同时使用python2和python3的方法 注意:最后一步是再对应的python环境中输入:conda install anaconda
- OFRecord 图片文件制数据集
OFRecord 图片文件制数据集 在 OFRecord 数据格式 和 加载与准备 OFRecord 数据集 中,分别学习了 OFRecord 数据格式,以及如何将其它数据集转为 OFRecord 数 ...
- YOLOv5目标检测源码重磅发布了!
YOLOv5目标检测源码重磅发布了! https://github.com/ultralytics/yolov5 该存储库代表了对未来对象检测方法的超解析开源研究,并结合了在使用之前的YOLO存储库在 ...
- WordPress安装篇(2):用宝塔面板在Windows上安装WordPress
上一篇文章介绍了如何使用PHPStudy工具在Windows Server环境安装WordPress,接下来介绍一款更加强大的部署WordPress的集成工具--宝塔面板.宝塔面板不仅提供免费版本,还 ...
- 【NX二次开发】Block UI 角度尺寸
属性说明 常规 类型 描述 BlockID String 控件ID Enable Logical 是否可操作 Group Logical ...
- 合宙模块LUA相关资料汇总
1. 目录 1. 目录 [2. LUA二次开发](#2. LUA二次开发) 2.1 [新手教程](#2.1 新手教程) 2.2 [进阶教程](#2.2 进阶教程) 2.3 [LUA开发环境](#2.3 ...
- 管理后台Vue
管理后台 遇到的问题 搭建 基于vue 3.0 Vue CLI 4.x Ant Design Vue 2.0 搭建后台管理系统 Ant Design Vue 2.0 npm i --save ant- ...
- ES7扩展
前一段时间小编一直在更新javascript es6版本的部分新语法和新特性,鉴于现在js一直在更新,接下来小编将和大家一起进步,一块探究js的新特性.今天小编就和大家一起来看看es7更新的语法和新特 ...
- ES6 学习笔记之对象的新增方法
1. Object.is() ES5 比较两个值是否相等,只有两个运算符:相等运算符(==)和严格相等运算符(===).它们都有缺点,前者会自动转换数据类型,后者的 NaN 不等于自身,以及 +0 等 ...