Python网站开发必备-django模板自定义标签

简介: Python网站开发必备-django模板自定义标签

大家好,我是辣条哥

前面几天都没有上啥干的,应广大粉丝要求,今天来点干的不能再干的,而且应该也是现在很多人都比较缺乏的一块,所以看完一定要记得收藏,免得之后还找不到了

另外再补充一小点,最近不少人在问我那30个游戏源码跟一些案例源码,还有之前的学习路线图,免得你们找不到我放在下面了

这里,这里,这里,点击我

目录
模板层之自定义标签
作用
第一步
第二步
第三步
第四步
对应模板层
自定义过滤器
模板层之自定义标签
作用
-干什么用的?生成html的片段(动态,传参数,传数据)

-app下新建一个模块,templatetags

    -创建一个py文件(mytag.py)
    -from django.template import Library
    -register=Library()   ----->register名字一定不能变
    -写装饰器(标签,过滤器,inclusion_tag)
    -@inclusion_tag('模板路径',name='重命名')
    -def my_in():  不写,写多个,不写不传,写多个,按空格来传参
    -    一堆逻辑处理,查数据库
    -    ret=Book.object.all()
        return {''books':ret}
    -在模板中:
        可以用books这个变量,渲染页面
    -应用:
        -在另一个模板中:
        -{%load mytag.py%}
        -{% my_in %}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
第一步
先app01是不是已经在setting中注册

INSTALLED_APPS = [

'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app01.apps.App01Config',

]
1
2
3
4
5
6
7
8
9
第二步
在app01下创建一个templatetags(名字不能变)的文件夹(模块)

第三步
在模块下创建一个py文件,名字随意:mytag.py

第四步
mytag.py中的内容:

第一种导入方式

第一步,导入template

from django import template

第二步,定义一个叫register的变量=template.Library()

register = template.Library()

或者

from django.template import Library

register = Library()

第三步的第一种

@register.filter()
def sadd(str1):

# 业务逻辑很复杂哦
return str1 + 1

第三步的第一种

@register.filter(name = 'myadd')
def sadd(str1):

# 业务逻辑很复杂哦
return str1 + 1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
对应模板层
第四步第一种模板直接调用函数sadd函数

{% load mytag %}
{{ 3|sadd }}
1
2
第四步第二种在模板中使用 myadd 是解析

{% load mytag %}
{{ 4|myadd }}
1
2
自定义过滤器
-1-4:前4步,根过滤器的定义完全一样

        -5 只是装饰器不一样
        @register.simple_tag()
            def add_nb(value):
                return value+'nb'
        -6 在模板里:(多个参数,以空格区分)
            -{% load mytag %}
            -{% add_nb 'lqz'%}

1
2
3
4
5
6
7
8
小提示:不能用if判断

目录
相关文章
|
8天前
|
Python
Seaborn 教程-模板(Context)
Seaborn 教程-模板(Context)
28 4
|
1月前
|
设计模式 前端开发 数据库
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第27天】本文介绍了Django框架在Python Web开发中的应用,涵盖了Django与Flask等框架的比较、项目结构、模型、视图、模板和URL配置等内容,并展示了实际代码示例,帮助读者快速掌握Django全栈开发的核心技术。
174 45
|
1月前
|
安全 数据库 开发者
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第26天】本文详细介绍了如何在Django框架下进行全栈开发,包括环境安装与配置、创建项目和应用、定义模型类、运行数据库迁移、创建视图和URL映射、编写模板以及启动开发服务器等步骤,并通过示例代码展示了具体实现过程。
59 2
|
1月前
|
安全 数据库 C++
Python Web框架比较:Django vs Flask vs Pyramid
Python Web框架比较:Django vs Flask vs Pyramid
44 1
|
2月前
|
安全 数据库 C++
Python Web框架比较:Django vs Flask vs Pyramid
Python Web框架比较:Django vs Flask vs Pyramid
42 4
|
2月前
|
安全 数据库 C++
Python Web框架比较:Django vs Flask vs Pyramid
【10月更文挑战第10天】本文比较了Python中三个最受欢迎的Web框架:Django、Flask和Pyramid。Django以功能全面、文档完善著称,适合快速开发;Flask轻量灵活,易于上手;Pyramid介于两者之间,兼顾灵活性和安全性。选择框架时需考虑项目需求和个人偏好。
39 1
|
2月前
|
安全 数据库 C++
Python Web框架比较:Django vs Flask vs Pyramid
【10月更文挑战第6天】本文比较了Python中三个最受欢迎的Web框架:Django、Flask和Pyramid。Django功能全面,适合快速开发;Flask灵活轻量,易于上手;Pyramid介于两者之间,兼顾灵活性和可扩展性。文章分析了各框架的优缺点,帮助开发者根据项目需求和个人偏好做出合适的选择。
47 4
|
2月前
|
存储 Shell 数据库
Python编程--Django入门:用户账户(二)
Python编程--Django入门:用户账户(二)
32 2
|
2月前
|
存储 数据库 Python
Python编程--Django入门:用户账户(一)
Python编程--Django入门:用户账户(一)
21 1
|
7月前
|
开发框架 开发者 Python
深入探究Python Web开发框架:Flask与Django
Python作为一种广泛应用于Web开发的编程语言,其拥有众多优秀的Web开发框架。本文将深入探讨其中两大知名框架——Flask与Django。通过对它们的概念与实践进行比较分析,帮助读者更好地理解和选择适合自己项目需求的Web开发框架。