专栏首页从零开始学自动化测试python测试开发django-71.自定义标签tag

python测试开发django-71.自定义标签tag

前言

django的模板里面有很多标签可以快速实现一些功能,比如{% url url_name%} 可以快捷的导入一个本地url地址。 上一篇我们可以自定义一些过滤器https://www.cnblogs.com/yoyoketang/p/11809555.html,本篇讲下如何去自定义一个标签

自定义标签

常见的标签语法

  • {% for %} 变量输出变量的内容
  • {% if %} 对变量条件判断
  • {% csrf_token %} 生成 csrf_token值,用于防护跨站请求伪造攻击
  • {% url %} 引用路由配置地址,生成相应的url地址
  • {% with %} 将变量名重命名
  • {% load %} 导入django标签库
  • {% static %} 加载静态资源内容
  • {% extends xxx %} 模板继承
  • {% block xxx %} 重写父类模板的block内容
  • {% include xxx %} 导入模板 文件内容,代码复用

比如我们要实现一个概念,在页面上显示当前的系统时间格式:2019-11-7 10:20:00

接着上一篇,在 templatetags 目录新建mytag.py文件,写个获取当前时间的函数,定义标签名称为 current_time

from django import template
import time

register = template.Library()

@register.simple_tag(name='current_time')
def get_current_time():
    timestr = time.strftime("%Y-%m-%d %H:%M:%S")
    return timestr

引用标签

模板里面先 load 自己定义的标签

{% load mytag %}

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="referrer" content="no-referrer" />
    <title>Title</title>
</head>
<body>

{% load mytag %}

    <div>
    <p class="text_gray"><span>系统当前时间:</span>{% current_time %}</p>
    </div>

</body>
</html>

本文分享自微信公众号 - 从零开始学自动化测试(yoyoketang)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-11-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • TP漏洞之文件上传总结

    一般都是在网页上写一段javascript脚本,校验上传文件的后缀名,有白名单形式也有黑名单形式。

    php007
  • Jira服务工作台路径遍历导致的敏感信息泄露漏洞分析

    本文中,作者通过对JIRA Servcie Desk应用下普通用户和管理员账户的权限测试,发现可以普通用户身份访问获取到管理员账户关键路径下的一些敏感信息,这些...

    FB客服
  • 爬虫入门 --打造网站自生成系统(一)

    爬虫其实不算是新的东西了, 网上也有很多的教程,都很详尽,那么我为什么还要拿出来说呢?因为我发现大多数教材都是教你如何从网络上爬取内容,然后就结束了。 但是我们...

    iTesting
  • PHP漏洞之-Session劫持

    服务端和客户端之间是通过session(会话)来连接沟通。当客户端的浏览器连接到服务器后,服务器就会建立一个该用户的session。每个用户的session都是...

    php007
  • Etcd 配置详解

    对于标记 --my-flag 环境变量的格式是 ETCD_MY_FLAG。 适用于所有标记。

    用户5760343
  • 爬虫篇 | 高级爬虫( 二):Scrapy爬虫框架初探

    先确保你已经在电脑上安装好了Scrapy模块,说一下Scrapy安装的问题,网上大部分安装办法已经失效了,主要是因为 网站:https://www.lfd.uc...

    叫我龙总
  • 我们应该为 JavaScript 重新命名吗?[每日前端夜话0xDA]

    非官方的,社区制作的JavaScript徽标。资料来源:https://github.com/voodootikigod/logo.js

    疯狂的技术宅
  • 反间谍之旅:针对伊朗的网络之战

    “土耳其轰炸美盟友”、“伊朗游轮被炸”等一系列的重大事件的发生无疑显示出中东地区紧张的局势。此时此刻的中东犹如一个桶,一不小心就会出现战争风险。不过,中东局势虽...

    FB客服
  • Thinkphp同时用Mysql与MongoDB数据库

    本篇文章详细介绍Thinkphp5 如何同时使用Mysql和MongoDB数据库。

    php007
  • Etcd 运行时重配置

    1、更新:要更新 peer URL,首先,我们需要找到目标成员的ID。 etcdctl member list 6e3bd23ae5f1eae0: name...

    用户5760343

扫码关注云+社区

领取腾讯云代金券