python-django_自定义标签和过滤器_模板的导入与继承_静态文件使用方式_inclusion_tag的用法
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的用法相关推荐
- Django模板自定义标签和过滤器,模板继承(extend),Django的模型层
上回精彩回顾 视图函数:request对象request.path 请求路径request.GET GET请求数据 QueryDict {}request.POST POST请求数据 QueryDic ...
- django中自定义标签和过滤器
django中自定义标签和过滤器 原文:http://www.cnblogs.com/MnCu8261/p/5934203.html 纪念如何填了半天的坑,红色重点 想要实现自定义标签和过滤器需要进行 ...
- django “如何”系列4:如何编写自定义模板标签和过滤器
django的模板系统自带了一系列的内建标签和过滤器,一般情况下可以满足你的要求,如果觉得需更精准的模板标签或者过滤器,你可以自己编写模板标签和过滤器,然后使用{% load %}标签使用他们. 代码 ...
- Django 2.1.3 文档-模板-内置标签和过滤器(tagfilter)
内置标签和过滤器 1.内置标签 一览 autoescape block comment csrf_token cycle debug extends filter(标签filter而不是过滤器filt ...
- Django内建模版标签和过滤器
第四章列出了许多的常用内建模板标签和过滤器.然而,Django自带了更多的内建模板标签及过滤器.这章附录列出了截止到编写本书时,Django所包含的各个内建模板标签和过滤器,但是,新的标签是会被定期地 ...
- 08常用的模板标签和过滤器
技术交流QQ群:1027579432,欢迎你的加入! 本教程来源于B站杨仕航Django2.0开发视频教程,如需转载,必须注明来源! 1.继续搭建blog [外链图片转存失败,源站可能有防盗链机制,建 ...
- 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 ...
- 2Flask模板2控制代码块3静态文件4模板的继承
-回顾 Flask是基于python并且依赖jinja2模板引擎的框架. 注册路由:客户端与Flask程序交互 用户在浏览器输入请求地址->request Flask程序接收请求,分析请求地址 ...
- html静态模板继承,Django框架(七)-- 模板层:模板导入、模板继承、静态文件...
一.模板导入 要复用一个组件,可以将该组件写在一个文件中,在使用的时候导入即可 在模板中使用 1.语法 {% include '模板名字' %} 2.使用 ad.html页面 Panel title ...
最新文章
- 从QQ聊天看51CTO版主专业精神和工作态度!
- 常考数据结构与算法:平衡二叉树
- Mycat+Mysql 插入数据报错 i[Err] 1064 - partition table, insert must provide ColumnList
- 【数据结构与算法】二叉查找树的Java实现
- php 分页类 bootstrap,ThinkPHP分页使用bootstrap样式
- 软件开发中的V字模型与W模型(使开发与侧试分离)
- c 语言程序设计形考任务一,C语言程序设计形考任务.doc
- linux罗技键盘驱动下载,罗技m590驱动-罗技m590无线鼠标驱动下载 v8.10.154官方版-下载啦...
- 沸腾新十年 | 中国语音产业江湖和科大讯飞的前半生
- linux下对IP地址的转发和端口的伪装----利用iptables部署
- [已解决]smallbin double linked list
- 阿里移动11.11 | Weex 在双十一会场的大规模应用--备用
- python模块相互引用_python导入模块交叉引用的方法
- 事务与共识 DDIA小结
- php 元旦祝福,元旦祝福语
- 牛客练习赛31 B 赞迪卡之声妮莎与奥札奇(逻辑+博弈) B
- 资产配置那些事-常用理财工具1
- Android软键盘高度控制的几种方案
- CH340国产USB转串口芯片替代CP2102对比CH340C与CH340G
- 操作系统--进程锁算法1(两个进程的锁)