(六)Django学习—自定义过滤器及模板中的使用,举例是实现固有的模板过滤器lower和cut的功能;自定义标签及模板中的使用(1)

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

过滤器必须用Library().filter 来进行装饰, name表示过滤器的名字,也可以不指定,函数名就是过滤的名字

装饰后的函数,才能当作过滤器来使用

(6)第六步:

模板文件引入自定义过滤器的使用:

{# 在模板中使用自定义的过滤器需要使用模板标签将我们的自定义模块加载进来,#}

{#此声明将会载入给定模块名中的标签/过滤器。common_extras是我过滤器所在py文件的名字 #}

{% load common_extras %}

lala

{#过滤器的作用:在不改变别人代码的同时添加新的功能!#}

{#变小写:#}

通过内置过滤器:{{ name|lower }}

{#定义不携带参数的过滤器:#}

自定义过滤器:{{ name|mylower }}

{#切割对应参数:#}

{#定义携带参数的过滤器:#}

通过内置过滤器:{{ aa|cut:" " }}

自定义过滤器:{{ aa|mycut:" " }}

在模板中必须用{%load name%} 来引入我们的过滤器函数所在的py文件,name是py文件的名字 这里我的事common_extras。

之后 如果使用过滤器那么就直接 变量|过滤器 就可以了。

实现:

在这里插入图片描述

2.自定义标签:

======================================================================

第一种:自定义普通标签!


(1)自定义标签的编写:common_extras.py文件的编写!

from datetime import datetime

#显示当前时间

#第一种:在模板中使用自定义标签时传递参数

@register.simple_tag

def current_time1(format_string):

return datetime.now().strftime(format_string)

#第二种:注册标签时使用takes_context=True,则可以使用从上下文中传入的参数

@register.simple_tag(takes_context=True)

def current_time2(context): #此处context即为上下文中传入的参数

format_string=context.get(“format_string”)

return datetime.now().strftime(format_string)

(2)对应的视图函数:views.py文件的编写!(第二种使用从上下文中传入的参数)

def login(request):

#下面为从上下文中传入的参数!

return render(request,“ss.html”,context={“format_string”:“%Y年%m月%d日 %H:%M:%S”})

(3)模板中引入自定义标签及使用:

{# 必须用这一句去引用 common_extras是自定义标签所在py文件的名字 #}

{% load common_extras %}

lala

原样:{{ d }}

通过内置过滤器:{{ d|date:"Y/m/d H:i:s" }}

第一种:通过自定义标签:{% current_time1 "%Y年%m月%d日 %H:%M:%S" %}

第二种:通过自定义标签:{% current_time2 %}

第二种:自定义包含标签!


**包含标签的功能是可以通过渲染另外一个模板来显示一些数据

**

例如很多地方都可能会用到下面这几行代码,除了choices这个变量不一样之外,其他的都是格式都一样时,那么我们就可以把这部分代码封装在一个包含标签中.

    {% for i in choices %}

    • {{ i }}
    • {% endfor %}

      做了那么多年开发,自学了很多门编程语言,我很明白学习资源对于学一门新语言的重要性,这些年也收藏了不少的Python干货,对我来说这些东西确实已经用不到了,但对于准备自学Python的人来说,或许它就是一个宝藏,可以给你省去很多的时间和精力。

      别在网上瞎学了,我最近也做了一些资源的更新,只要你是我的粉丝,这期福利你都可拿走。

      我先来介绍一下这些东西怎么用,文末抱走。


      (1)Python所有方向的学习路线(新版)

      这是我花了几天的时间去把Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

      最近我才对这些路线做了一下新的更新,知识体系更全面了。

      在这里插入图片描述

      (2)Python学习视频

      包含了Python入门、爬虫、数据分析和web开发的学习视频,总共100多个,虽然没有那么全面,但是对于入门来说是没问题的,学完这些之后,你可以按照我上面的学习路线去网上找其他的知识资源进行进阶。

      在这里插入图片描述

      (3)100多个练手项目

      我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了,只是里面的项目比较多,水平也是参差不齐,大家可以挑自己能做的项目去练练。

      在这里插入图片描述

      (4)200多本电子书

      这些年我也收藏了很多电子书,大概200多本,有时候带实体书不方便的话,我就会去打开电子书看看,书籍可不一定比视频教程差,尤其是权威的技术书籍。

      基本上主流的和经典的都有,这里我就不放图了,版权问题,个人看看是没有问题的。

      (5)Python知识点汇总

      知识点汇总有点像学习路线,但与学习路线不同的点就在于,知识点汇总更为细致,里面包含了对具体知识点的简单说明,而我们的学习路线则更为抽象和简单,只是为了方便大家只是某个领域你应该学习哪些技术栈。

      在这里插入图片描述

      (6)其他资料

      还有其他的一些东西,比如说我自己出的Python入门图文类教程,没有电脑的时候用手机也可以学习知识,学会了理论之后再去敲代码实践验证,还有Python中文版的库资料、MySQL和HTML标签大全等等,这些都是可以送给粉丝们的东西。

      在这里插入图片描述

      这些都不是什么非常值钱的东西,但对于没有资源或者资源不是很好的学习者来说确实很不错,你要是用得到的话都可以直接抱走,关注过我的人都知道,这些都是可以拿到的。

      网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

      需要这份系统化学习资料的朋友,可以戳这里获取

      一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

    • 19
      点赞
    • 11
      收藏
      觉得还不错? 一键收藏
    • 0
      评论
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值