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判断

目录
相关文章
|
3月前
|
Linux 数据库 数据安全/隐私保护
Python web Django快速入门手册全栈版,共2590字,短小精悍
本教程涵盖Django从安装到数据库模型创建的全流程。第一章介绍Windows、Linux及macOS下虚拟环境搭建与Django安装验证;第二章讲解项目创建、迁移与运行;第三章演示应用APP创建及项目汉化;第四章说明超级用户创建与后台登录;第五章深入数据库模型设计,包括类与表的对应关系及模型创建步骤。内容精炼实用,适合快速入门Django全栈开发。
92 1
|
4月前
|
SQL 安全 算法
解读 Python 3.14:模板字符串、惰性类型、Zstd压缩等7大核心功能升级
Python 3.14 引入了七大核心技术特性,大幅提升开发效率与应用安全性。其中包括:t-strings(PEP 750)提供更安全灵活的字符串处理;类型注解惰性求值(PEP 649)优化启动性能;外部调试器API标准化(PEP 768)增强调试体验;原生支持Zstandard压缩算法(PEP 784)提高效率;REPL交互环境升级更友好;UUID模块扩展支持新标准并优化性能;finally块语义强化(PEP 765)确保资源清理可靠性。这些改进使Python在后端开发、数据科学等领域更具竞争力。
174 5
解读 Python 3.14:模板字符串、惰性类型、Zstd压缩等7大核心功能升级
|
5月前
|
前端开发 JavaScript 关系型数据库
基于python的租房网站-房屋出租租赁系统(python+django+vue)源码+运行
该项目是基于python/django/vue开发的房屋租赁系统/租房平台,作为本学期的课程作业作品。欢迎大家提出宝贵建议。
155 6
|
10月前
|
设计模式 前端开发 数据库
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第27天】本文介绍了Django框架在Python Web开发中的应用,涵盖了Django与Flask等框架的比较、项目结构、模型、视图、模板和URL配置等内容,并展示了实际代码示例,帮助读者快速掌握Django全栈开发的核心技术。
584 45
|
9月前
|
Python
Seaborn 教程-模板(Context)
Seaborn 教程-模板(Context)
131 4
|
8月前
|
程序员 Linux Python
python中模板和包的使用
本文介绍了 Python 模块和包的基本概念及使用方法。模块是 Python 程序结构的核心,每个以 `.py` 结尾的源文件都是一个模块,包含可重用的代码。文章详细讲解了模块的导入方式(如 `import` 和 `from...import`),模块的搜索顺序,以及如何创建和发布自己的模块。此外,还介绍了包的概念,包是包含多个模块的特殊目录,并通过 `__init__.py` 文件定义对外提供的模块列表。最后,文章简述了如何使用 `pip` 工具管理第三方模块的安装与卸载。作者:大石头的笔记;来源:稀土掘金。
|
10月前
|
安全 数据库 开发者
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第26天】本文详细介绍了如何在Django框架下进行全栈开发,包括环境安装与配置、创建项目和应用、定义模型类、运行数据库迁移、创建视图和URL映射、编写模板以及启动开发服务器等步骤,并通过示例代码展示了具体实现过程。
324 2
|
10月前
|
安全 数据库 C++
Python Web框架比较:Django vs Flask vs Pyramid
Python Web框架比较:Django vs Flask vs Pyramid
145 1
|
11月前
|
安全 数据库 C++
Python Web框架比较:Django vs Flask vs Pyramid
Python Web框架比较:Django vs Flask vs Pyramid
179 4
|
12月前
|
机器学习/深度学习 人工智能 算法
植物病害识别系统Python+卷积神经网络算法+图像识别+人工智能项目+深度学习项目+计算机课设项目+Django网页界面
植物病害识别系统。本系统使用Python作为主要编程语言,通过收集水稻常见的四种叶片病害图片('细菌性叶枯病', '稻瘟病', '褐斑病', '稻瘟条纹病毒病')作为后面模型训练用到的数据集。然后使用TensorFlow搭建卷积神经网络算法模型,并进行多轮迭代训练,最后得到一个识别精度较高的算法模型,然后将其保存为h5格式的本地模型文件。再使用Django搭建Web网页平台操作界面,实现用户上传一张测试图片识别其名称。
385 22
植物病害识别系统Python+卷积神经网络算法+图像识别+人工智能项目+深度学习项目+计算机课设项目+Django网页界面

推荐镜像

更多