Django 自定义标签

1,简单标签

1.1 添加自定义标签函数

Test/app5/templatetags/mytags.py

from django import template
register = template.Library()
@register.simple_tag()
def show_title(value, n):if len(value) > n:return f'{value[:n]}...'else:return value

 

1.2 添加视图函数

from django.shortcuts import render# Create your views here.
import datetimedef filter(request):str1 = 'abcdefg'str2 = 'ABCDEFGHIJKLMNO'str3 = '123456789'time_str = datetime.datetime.now()return render(request, '5/filter.html', {'str1':str1, 'str2':str2, 'str3':str3, 'time_str':time_str})def html_filter(request):html_addr = """<table border='2'><tr><td>这是表格A</td><td>这是表格B</td></tr></table>"""html_script = """<script language='JavaScript'>document.write('非法执行');</script>"""return render(request, '5/html_filter.html', {"html_addr":html_addr, "html_script":html_script})def diy_filter(request):dict1 = {'标题': '学习Django天天加班,熬到深夜,沉迷学习无法自拔!'}dict2 = {'标题': '学习java天天加班,熬到深夜,沉迷学习无法自拔!'}dict3 = {'标题': '学习C++天天加班,熬到深夜,沉迷学习无法自拔!'}lists = [dict1, dict2, dict3]return render(request, '5/diy_filter.html', {"lists":lists})def diy_tags(request):dict1 = {'标题': '学习Django天天加班,熬到深夜,沉迷学习无法自拔!'}dict2 = {'标题': '学习java天天加班,熬到深夜,沉迷学习无法自拔!'}dict3 = {'标题': '学习C++天天加班,熬到深夜,沉迷学习无法自拔!'}lists = [dict1, dict2, dict3]return render(request, '5/diy_tags.html', {"lists":lists})

1.3 添加路由地址

Test/app5/urls.py

from django.urls import path
from . import viewsurlpatterns = [path('filter', views.filter, name='filter'),path('html_filter', views.html_filter, name='html_filter'),path('diy_filter', views.diy_filter, name='diy_filter'),path('diy_tags', views.diy_tags, name='diy_tags'),
]

1.4 添加html代码

Test/templates/5/diy_tags.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>{% load mytags %} <!-- 使用半角字符 -->
<table border="1" style="width: 300px">{% for list in lists %}<tr><td>{% show_title list.标题 10 %}</td></tr>{% endfor %}
</table></body>
</html>

1.5 访问页面

http://127.0.0.1:8000/app5/diy_tags

2,包含标签

2.1 添加自定义标签函数

Test/app5/templatetags/mytags.py

from django import template
register = template.Library()
@register.simple_tag()
def show_title(value, n):if len(value) > n:return f'{value[:n]}...'else:return value@register.inclusion_tag("5/show_info_tags2.html")
def show_info_tags2():dict1={'标题':'小强|2024-06-29'}dict2={'标题':'小强|2024-06-29'}dict3={'标题':'小强|2024-06-29'}lists=[dict1,dict2,dict3]return {'lists':lists}

2.2 添加html代码

Test/templates/5/show_info_tags2.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><table border="1" style="width: 310px">{% for list in lists %}<tr><td>{{ list.标题 }}</td></tr>{% endfor %}
</table></body>
</html>

2.3 添加视图函数

Test/app5/views.py

from django.shortcuts import render# Create your views here.
import datetimedef filter(request):str1 = 'abcdefg'str2 = 'ABCDEFGHIJKLMNO'str3 = '123456789'time_str = datetime.datetime.now()return render(request, '5/filter.html', {'str1':str1, 'str2':str2, 'str3':str3, 'time_str':time_str})def html_filter(request):html_addr = """<table border='2'><tr><td>这是表格A</td><td>这是表格B</td></tr></table>"""html_script = """<script language='JavaScript'>document.write('非法执行');</script>"""return render(request, '5/html_filter.html', {"html_addr":html_addr, "html_script":html_script})def diy_filter(request):dict1 = {'标题': '学习Django天天加班,熬到深夜,沉迷学习无法自拔!'}dict2 = {'标题': '学习java天天加班,熬到深夜,沉迷学习无法自拔!'}dict3 = {'标题': '学习C++天天加班,熬到深夜,沉迷学习无法自拔!'}lists = [dict1, dict2, dict3]return render(request, '5/diy_filter.html', {"lists":lists})def diy_tags(request):dict1 = {'标题': '学习Django天天加班,熬到深夜,沉迷学习无法自拔!'}dict2 = {'标题': '学习java天天加班,熬到深夜,沉迷学习无法自拔!'}dict3 = {'标题': '学习C++天天加班,熬到深夜,沉迷学习无法自拔!'}lists = [dict1, dict2, dict3]return render(request, '5/diy_tags.html', {"lists":lists})def show_info_2(request):return render(request, '5/show_info_2.html')

2.4 添加html代码

Test/templates/5/show_info_2.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>{% load mytags %}
<p>当前文件是show_info_2</p>
<p>以下内容是从另外一个模版文件show_info_tags2加载的</p>
{% show_info_tags2 %}
</body>
</html>

2.5 添加路由地址

Test/app5/urls.py

from django.urls import path
from . import viewsurlpatterns = [path('filter', views.filter, name='filter'),path('html_filter', views.html_filter, name='html_filter'),path('diy_filter', views.diy_filter, name='diy_filter'),path('diy_tags', views.diy_tags, name='diy_tags'),path('show_info_2', views.show_info_2, name='show_info_2'),]

2.6 访问页面

http://127.0.0.1:8000/app5/show_info_2

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

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

相关文章

Typora failed to export as pdf. undefined

变换版本并没有用&#xff0c;调整图片大小没有用 我看到一个博客后尝试出方案 我的方法 解决&#xff1a;从上图中的A4&#xff0c;变为其他&#xff0c;然后变回A4 然后到处成功&#xff0c;Amazing&#xff01; 参考&#xff1a; Typora 导出PDF 报错 failed to export…

javaScript利用indexOf()查找字符串的某个字符出现的位置

1 创建字符串 2 利用indexof()查询字符串的字符 3 利用while循环判断indexOf是否等于-1&#xff0c;不等于-1就打印一次并且索引号1去查下一个字符 //创建字符串var str1234567812311231;var indexstr.indexOf(1);//查询该字符while(index !-1)//indexOf()没有查到会返回-1{…

【Linux】使用chrony同步时间

chrony介绍 chrony 是一个开源的网络时间协议 (NTP) 客户端和服务器&#xff0c;旨在保持计算机系统的时间精确同步。它是Linux和其他类Unix系统中广泛使用的工具&#xff0c;特别是在需要高精度时间同步的环境中。chrony 的设计考虑了现代网络的挑战&#xff0c;如不稳定的连…

负载均衡器有什么用?

负载均衡器有什么用&#xff1f; 负载均衡器是一种在多个服务器之间分配网络或应用程序流量的设备或软件应用程序。其主要目的是确保没有一台服务器承担过多的需求&#xff0c;从而提高应用程序的响应速度和可用性。 在计算机发展的早期&#xff0c;负载均衡是一个手动过程。…

AI Prompt 提示词编写公式

自 OpenAI 的 ChatGPT 横空出世至今&#xff0c;各种 AI 大模型百花齐放、百家争鸣。按照用途可以分为两类&#xff1a; 对话类&#xff1a;即通过文字、语音、图片或者视频输入来给模型下达指令&#xff0c;然后模型按照指令以文字的形式将回答输出给用户&#xff1b;生成类&…

暑假兼职赚生活费

兼职项目种类繁多&#xff0c;以下是一些常见的副业兼职项目&#xff0c;供您参考&#xff1a; 写作兼职&#xff1a; 挖掘专长领域&#xff1a;如科技、金融、教育等。 注册自由职业平台&#xff1a;如猪八戒网、酷咖写手等&#xff0c;完善个人资料和作品展示。 宣传与建立…

lodash.js 工具库

lodash 是什么? Lodash是一个流行的JavaScript实用工具库,提供了许多高效、高兼容性的工具函数,能够方便地处理集合、字符串、数值、函数等多种数据类型,大大提高工作效率。 lodash官网 文档参见:Lodash Documentation lodash 在Vue中怎么使用? 1、首先安装 lodash np…

视频云计算的未来发展趋势:智能化、个性化与云端协同助力智慧城市安防监控

随着信息技术的飞速发展&#xff0c;云计算作为一种全新的服务模式&#xff0c;正在改变我们处理数据和信息的方式。而视频云计算技术&#xff0c;作为云计算领域的一个重要分支&#xff0c;以其独特的优势&#xff0c;正在逐步渗透到我们生活的各个领域。 一、视频云计算技术…

【折腾笔记】兰空图床使用Minio作为储存策略

前言 花了几个小时研究了一下在兰空图床中使用Minio作为存储策略,官方并没有给出太多关于minio的储存策略配置文档,我是经过反复尝试,然后根据错误日志的提示以及查阅兰空图床在GitHub上面的issues悟出来的配置方法。 因为我的兰空图床和Minio都是基于群晖的NAS设备DS423+…

干货 | AI 产品经理的成长之路(ChatBot 方向)

近几年&#xff0c;人工智能在投资圈、创业圈甚至是全社会都成了热词&#xff0c;那么提起人工智能&#xff0c;一定会想到机器学习、深度学习、自然语言处理等等名词&#xff0c;同时也会想到这些技术背后的人才—算法工程师&#xff0c;因此这两年算法工程师成为了人才市场上…

pdf拆分,pdf拆分在线使用,pdf拆分多个pdf

在数字化的时代&#xff0c;pdf文件已经成为我们日常办公、学习不可或缺的文档格式。然而&#xff0c;有时候我们可能需要对一个大的pdf文件进行拆分&#xff0c;以方便管理和分享。那么&#xff0c;如何将一个pdf文件拆分成多个pdf呢&#xff1f;本文将为你推荐一种好用的拆分…

相关作业调度算法的完成时间、周转时间、平均周转时间等问题

☀️☀️☀️ 相关作业调度算法的完成时间、周转时间、平均周转时间等问题 ​ 周转时间&#xff1a;从作业被提交给系统开始&#xff0c;到作业完成为止的这段时间间隔称为作业周转时间。 带权周转时间&#xff1a;即作业的周转时间T与系统为它提供服务的时间Ts之比&#xff…

生成独立的zedboard+ad9361起始项目

文件分享 链接&#xff1a;https://pan.baidu.com/s/17wB_9xVWjO7HhxNvmmZyuA 提取码&#xff1a;94zz 首先下载HDL和NO-OS项目 git clone --recursive https://github.com/analogdevicesinc/hdl git clone --recursive https://github.com/analogdevicesinc/no-OS下载…

CXL:拯救NVMe SSD缓存不足设计难题-2

LMB提出了基于CXL协议的内存扩展框架和内核模块。该方案利用CXL内存扩展器作为物理DRAM源&#xff0c;旨在提供一个统一的内存分配接口&#xff0c;使PCIe和CXL设备都能方便地访问扩展的内存资源。通过这个接口&#xff0c;NVMe驱动和CUDA的统一内存内核驱动可以直接高效地访问…

携程二面测开—中核

4.12 35min面试经验 自我介绍 在面试的开始&#xff0c;我简洁明了地进行了自我介绍&#xff0c;突出了我的教育背景、技能特长以及实习经历&#xff0c;为后续的面试内容打下了良好的基础。 实习的具体工作内容 在谈及实习经历时&#xff0c;我详细阐述了在实习期间所承担…

架构设计之RBAC基于角色的访问控制设计

概念 RBAC&#xff08;Role-Based Access Control&#xff0c;基于角色的访问控制&#xff09;是一种常见的权限管理模型&#xff0c;它通过定义角色来分配权限&#xff0c;然后将角色分配给用户。在Java中实现RBAC权限管理&#xff0c;你可以遵循以下步骤&#xff1a; 定义权…

盘点全球Top10大云计算平台最热门技能证书

小李哥花了一年半时间终于考下全球10大云的77张认证&#xff0c;今天盘点下各个云的热门证书&#xff0c;希望能帮到非CS专业转IT和刚刚入行云计算的小伙伴。 排名取自23年Yahoo云计算市场份额排名报告&#xff0c;我会从云平台、证书价格、证书热门程度做推荐。 1️⃣亚马逊云…

第二届Godot游戏开发大赛来啦!

第二届Godot游戏开发大赛来啦&#xff01; 我们的开发大赛正式定名为Godot Hub Festival 2024&#xff0c;以后将按照年份命名。 另外&#xff0c;本次比赛将和openKylin开源社区的SIG组们合作举办(因此也可以叫Godot openKylin开发大赛)。比赛定于2024年7月1日正式开始&#x…

ElementUI框架搭建及组件使用

前言: 当开始使用ElementUI框架来搭建网站或Web应用程序时&#xff0c;了解框架的基本结构和组件的使用是至关重要的。ElementUI是一个基于Vue.js的框架&#xff0c;提供了丰富的UI组件和工具&#xff0c;可以帮助开发人员快速构建现代化的用户界面。 在本文中&#xff0c;我…

FinalShell:功能强大的 SSH 工具软件,Mac 和 Win 系统的得力助手

在当今数字化的时代&#xff0c;SSH 工具软件成为了许多开发者、运维人员以及技术爱好者不可或缺的工具。而 FinalShell 作为一款出色的中文 SSH 工具软件&#xff0c;无论是在 Mac 系统还是 Windows 系统上&#xff0c;都展现出了卓越的性能和便捷的使用体验。 FinalShell 拥…