django

1. 自定义标签和过滤器

1. 自定义过滤器

-第一步:在settings中的INSTALLED_APPS配置当前app,不然django无法找到自定义的simple_tag-第二步:在app中创建templatetags包(包名只能是templatetags,不能改)-第三步:在包内,新建py文件(如:my_tags.py)-第四步:# 写代码(过滤器)from django import templateregister = template.Library()@register.filterdef my_upper(value):return value.upper()-第五步:#(模板),先load,再使用{% load my_tags %}{{ 'aa'|my_upper }}

2. 自定义标签

-第一步:在settings中的INSTALLED_APPS配置当前app,不然django无法找到自定义的simple_tag-第二步:在app中创建templatetags包(包名只能是templatetags,不能改)-第三步:在包内,新建py文件(如:my_tags.py)-第四步:# 写代码(过滤器)from django import templateregister = template.Library()@register.simple_tagdef my_csrf():import uuidres=uuid.uuid4()return mark_safe('<input type="hidden" name="csrfmiddlewaretoken" value="%s">'%res)-第五步:#(模板),先load,再使用{% load my_tags %}{% my_csrf %}{% my_tag 1 3 4 %}

2. 模板的导入与继承

1. 模板的导入

-第一步:# 新建一个 xx.html,把好看的模板写入<div class="panel panel-danger"><div class="panel-heading"><h3 class="panel-title">重金求子</h3></div><div class="panel-body">详情点击:<a href="http://www.baidu.com">疯狂点我</a></div></div>-第二步:# 放在你想使用的地方{% include 'xx.html' %}

2. 模板的继承

-第一步:# 写一个母版模板文件base.html# 写空盒子{% block top %}{% endblock %}-第二步:# 某个页面要使用母版,引入{% extends 'base.html' %}# 扩写盒子{% block top %}index页面{% endblock %}

3. 静态文件使用方式

# settings.py 文件中静态文件相关配置
STATIC_URL = '/static/'STATICFILES_DIRS = [os.path.join(BASE_DIR,'static'),
]# 静态文件三种使用方式
第一种: <link rel="stylesheet" href="/static/bootstrap/css/bootstrap.min.css">第二种:{% load static %}<link rel="stylesheet" href="{% static 'bootstrap/css/bootstrap.min.css' %}">第三种:{% load static %}<link rel="stylesheet" href="{% get_static_prefix %}bootstrap/css/bootstrap.min.css"># 特殊用法{% load static %}{% static "images/hi.jpg" as myphoto %}<img src="{{ myphoto }}"></img>{% load static %}{% get_static_prefix as static %}<img src="{{ static }}images/hi.jpg" alt="Hi!"/>

4. inclusion_tag 用法

# inclusion_tag作用: 可以生成一片模板中的代码块# 使用方法-第一步:在settings中的INSTALLED_APPS配置当前app,不然django无法找到自定义的simple_tag-第二步:在app中创建templatetags包(包名只能是templatetags,不能改)-第三步:在包内,新建py文件(如:my_tags.py)-第四步:# 写代码(inclusion_tag)# inclusion_tag,传一个模板文件@register.inclusion_tag('left.html')def left(num):# dic={0:第0页,1:第1页,2:第2页} 字典推导式dic = {i: '第%s页' % i for i in range(num)}# 固定返回的必须是字典print(dic)return {'data': dic}@register.inclusion_tag('beautiful.html')def beautiful(title, url):return {'title': title, 'url': url}-第五步使用:#(模板),先load,再使用{% load my_tags %}{% left 5 %}{% beautiful '名字' '地址' %}   # inclusion_tag与tag的区别-tag需要在代码中写html的东西-inclusion_tag代码跟模板分离

5. 补充

针对 encode 和 decode 记混问题

# 方式一a = 'abcde' # type stra.提示信息# 方式二ss_str = str(request.body,encoding='utf-8')ss_bytes = bytes('字符串变量',encoding='utf-8')

python-django_自定义标签和过滤器_模板的导入与继承_静态文件使用方式_inclusion_tag的用法相关推荐

  1. Django模板自定义标签和过滤器,模板继承(extend),Django的模型层

    上回精彩回顾 视图函数:request对象request.path 请求路径request.GET GET请求数据 QueryDict {}request.POST POST请求数据 QueryDic ...

  2. django中自定义标签和过滤器

    django中自定义标签和过滤器 原文:http://www.cnblogs.com/MnCu8261/p/5934203.html 纪念如何填了半天的坑,红色重点 想要实现自定义标签和过滤器需要进行 ...

  3. django “如何”系列4:如何编写自定义模板标签和过滤器

    django的模板系统自带了一系列的内建标签和过滤器,一般情况下可以满足你的要求,如果觉得需更精准的模板标签或者过滤器,你可以自己编写模板标签和过滤器,然后使用{% load %}标签使用他们. 代码 ...

  4. Django 2.1.3 文档-模板-内置标签和过滤器(tagfilter)

    内置标签和过滤器 1.内置标签 一览 autoescape block comment csrf_token cycle debug extends filter(标签filter而不是过滤器filt ...

  5. Django内建模版标签和过滤器

    第四章列出了许多的常用内建模板标签和过滤器.然而,Django自带了更多的内建模板标签及过滤器.这章附录列出了截止到编写本书时,Django所包含的各个内建模板标签和过滤器,但是,新的标签是会被定期地 ...

  6. 08常用的模板标签和过滤器

    技术交流QQ群:1027579432,欢迎你的加入! 本教程来源于B站杨仕航Django2.0开发视频教程,如需转载,必须注明来源! 1.继续搭建blog [外链图片转存失败,源站可能有防盗链机制,建 ...

  7. Python的web框架Django(1):HTTP、简介、静态文件配置、路由系统、视图函数、模板语言、ORM、Ajax、分页器、forms、Cookie、Session、中间件、ModelForm

    1. HTTP协议 1)HTTP请求协议 请求格式 POST(方法) /form/entry(URI) HTTP/1.1(协议版本) HOST:hackr.jp(服务端地址) Connection:k ...

  8. 2Flask模板2控制代码块3静态文件4模板的继承

    -回顾 Flask是基于python并且依赖jinja2模板引擎的框架. 注册路由:客户端与Flask程序交互 用户在浏览器输入请求地址->request Flask程序接收请求,分析请求地址 ...

  9. html静态模板继承,Django框架(七)-- 模板层:模板导入、模板继承、静态文件...

    一.模板导入 要复用一个组件,可以将该组件写在一个文件中,在使用的时候导入即可 在模板中使用 1.语法 {% include '模板名字' %} 2.使用 ad.html页面 Panel title ...

最新文章

  1. 从QQ聊天看51CTO版主专业精神和工作态度!
  2. 常考数据结构与算法:平衡二叉树
  3. Mycat+Mysql 插入数据报错 i[Err] 1064 - partition table, insert must provide ColumnList
  4. 【数据结构与算法】二叉查找树的Java实现
  5. php 分页类 bootstrap,ThinkPHP分页使用bootstrap样式
  6. 软件开发中的V字模型与W模型(使开发与侧试分离)
  7. c 语言程序设计形考任务一,C语言程序设计形考任务.doc
  8. linux罗技键盘驱动下载,罗技m590驱动-罗技m590无线鼠标驱动下载 v8.10.154官方版-下载啦...
  9. 沸腾新十年 | 中国语音产业江湖和科大讯飞的前半生
  10. linux下对IP地址的转发和端口的伪装----利用iptables部署
  11. [已解决]smallbin double linked list
  12. 阿里移动11.11 | Weex 在双十一会场的大规模应用--备用
  13. python模块相互引用_python导入模块交叉引用的方法
  14. 事务与共识 DDIA小结
  15. php 元旦祝福,元旦祝福语
  16. 牛客练习赛31 B 赞迪卡之声妮莎与奥札奇(逻辑+博弈) B
  17. 资产配置那些事-常用理财工具1
  18. Android软键盘高度控制的几种方案
  19. CH340国产USB转串口芯片替代CP2102对比CH340C与CH340G
  20. 操作系统--进程锁算法1(两个进程的锁)

热门文章

  1. DSP TMS320F28335按键实现流水灯样式
  2. 01-KNN(K最临近算法)中涉及到的一些小知识点
  3. 3d机器学习open3d学习教程4--三角网格对象TriangleMesh
  4. 去除网页广告--浏览器插件
  5. Hough 算法(霍夫变换)
  6. 推荐一个临时邮箱生成网站
  7. 图像融合定量指标分析
  8. 使用SDL加载多张图片(二)
  9. 为什么D是输入,Q是输出?
  10. Linux CentOS7下载实操