1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > python-django_自定义标签和过滤器_模板的导入与继承_静态文件使用方式_inclusion_tag的用法

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

时间:2021-12-25 12:40:53

相关推荐

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="">疯狂点我</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')

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。