大家好,我是辣条哥
前面几天都没有上啥干的,应广大粉丝要求,今天来点干的不能再干的,而且应该也是现在很多人都比较缺乏的一块,所以看完一定要记得收藏,免得之后还找不到了
文章图片
另外再补充一小点,最近不少人在问我那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 %}
第一步 先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',
]
第二步 在app01下创建一个templatetags(名字不能变)的文件夹(模块)
第三步 在模块下创建一个py文件,名字随意:mytag.py
文章图片
第四步 mytag.py中的内容:
# 第一种导入方式
# 第一步,导入template
# from django import template
# 第二步,定义一个叫register的变量=template.Library()
# register = template.Library()# 或者
from django.template import Libraryregister = Library()# 第三步的第一种
@register.filter()
def sadd(str1):
# 业务逻辑很复杂哦
return str1 + 1# 第三步的第一种
@register.filter(name = 'myadd')
def sadd(str1):
# 业务逻辑很复杂哦
return str1 + 1
对应模板层
第四步第一种模板直接调用函数sadd函数
{% load mytag %}
{{ 3|sadd }}
第四步第二种在模板中使用 myadd 是解析
{% load mytag %}
{{ 4|myadd }}
自定义过滤器
-1-4:前4步,根过滤器的定义完全一样
-5 只是装饰器不一样
@register.simple_tag()
def add_nb(value):
return value+'nb'
-6 在模板里:(多个参数,以空格区分)
-{% load mytag %}
-{% add_nb 'lqz'%}
【Python知识点系列详解|Python网站开发必备-django模板自定义标签】小提示:不能用if判断
点击下面名片直接找博主我拿
推荐阅读
- Python实战项目|Python技术知识获取数据并进行可视化(已火锅店为例)
- 宝藏推荐|容易让人没朋友的python整蛊小程序,纯属娱乐慎用
- Python 读取PDF文件为文本字符并转换为音频
- Python字典常见操作方法 - 增加、删除、修改
- Python字典查找数据的5个操作方法有哪些()
- java|最新版Redis安装配置教程(Windows+Linux)
- Python|Python函数式编程学习(lambda, map, reduce, filter)
- 机器学习|机器学习入门(开发环境搭建)
- asyncio|asyncio 多线程附加协程,在一个线程内运行一个事件循环