慕课网-Django入门到进阶-更适合Python小白的系统课程-第3章Django中的Template模板-3.5内置过滤器
第3章 Django中的Template模板
3.5 内置过滤器
1.进入项目下目录 app,修改文件 views.py
#coding:utf-8
import datetime
from django.shortcuts import render
from django.views.generic import View
class Index(View):
TEMPLATE = 'index.html'
def get(self, request, name):
data = {}
data['name'] = name
data['array'] = range(10)
data['count'] = 20
data['time'] = datetime.datetime.now()
data['cut_str'] = 'hello-boy!'
data['first_big'] = 'hello django!'
data['result'] = []
data['result_none'] = None
data['dic_list'] = [{'name':'dewei','age':30}, {'name':'xiaoming', 'age':18}]
data['float_num'] = 3.1415926
data['html_str'] = '<div style="background-color:red;width:50px;height:50px"></div>'
data['a_str'] = '请看 www.baidu.com'
data['feature'] = data['time'] + datetime.timedelta(days=5)
return render(request, self.TEMPLATE, data)
2.进入项目下目录 templates,修改文件 index.html
{% extends 'base.html' %}
{% load static %}
{% block css_style %}
<link rel="stylesheet" href="{% static 'index.css' %}" />
{% endblock %}
{% block title %}
test
{% endblock %}
{% block content %}
<h1> hello {{name}} </h1>
<ul>
{% for item in array %}
<li>{{item}}</li>
{% endfor %}
</ul>
<br/>
<label>add:</label>{{count|add:10}}<br/>
<label>date:</label>{{time|date:"Y-m-d H:i:m"}}<br/>
<label>cut:</label>{{cut_str|cut:"-"}}<br/>
<label>capfirst:</label>{{first_big|capfirst}}<br/>
<label>default:</label>{{result|default:"空列表"}}<br/>
<label>default_if_none:</label>{{result_none|default_if_none:"none才是空"}}<br/>
<label>dictsort:</label>{{dic_list|dictsort:'age'}}<br/>
<label>dictsortreversed:</label>{{dic_list|dictsortreversed:'age'}}<br/>
<label>first:</label>{{dic_list|first}}<br/>
<label>last:</label>{{dic_list|last}}<br/>
<label>floatformat:</label>{{float_num|floatformat:4}}<br/>
<label>join:</label>{{array|join:"-"}}<br/>
<label>length:</label>{{dic_list|length}}<br/>
<label>divisibleby:</label>{{count|divisibleby:2}}<br/>
<label>length_is:</label>{{dic_list|length_is:3}}<br/>
<label>safe:</label>{{html_str|safe}}
<label>random:</label>{{dic_list|random}}<br/>
<label>slice:</label>{{html_str|slice:":10"}}<br/>
<label>slugify:</label>{{html_str|slugify}}<br/>
<label>upper:</label>{{html_str|upper}}<br/>
<label>urlize:</label>{{a_str|urlize}}<br/>
<label>wordcount:</label>{{first_big|wordcount}}<br/>
<label>timeuntil:</label>{{feature|timeuntil}}<br/>
<br/><br/>
{% endblock %}
3.测试

4.进入项目下目录 app,新建目录 templatetags,自定义过滤器
5.进入项目下目录 app/templatetags,新建文件 __init__.py 和 myfilter.py,自定义过滤器
6.进入项目下目录 app/templatetags,修改文件 myfilter.py
#!/usr/bin/env python
# -*- coding:utf-8 -*-
from django import template
register = template.Library()
@register.filter
def test(value, args):
return value * args
7.进入项目下目录 templates,修改文件 index.html
{% extends 'base.html' %}
{% load static %}
{% load myfilter %}
{% block css_style %}
<link rel="stylesheet" href="{% static 'index.css' %}" />
{% endblock %}
{% block title %}
test
{% endblock %}
{% block content %}
<h1> hello {{name}} </h1>
<ul>
{% for item in array %}
<li>{{item}}</li>
{% endfor %}
</ul>
<br/>
<label>add:</label>{{count|add:10}}<br/>
<label>date:</label>{{time|date:"Y-m-d H:i:m"}}<br/>
<label>cut:</label>{{cut_str|cut:"-"}}<br/>
<label>capfirst:</label>{{first_big|capfirst}}<br/>
<label>default:</label>{{result|default:"空列表"}}<br/>
<label>default_if_none:</label>{{result_none|default_if_none:"none才是空"}}<br/>
<label>dictsort:</label>{{dic_list|dictsort:'age'}}<br/>
<label>dictsortreversed:</label>{{dic_list|dictsortreversed:'age'}}<br/>
<label>first:</label>{{dic_list|first}}<br/>
<label>last:</label>{{dic_list|last}}<br/>
<label>floatformat:</label>{{float_num|floatformat:4}}<br/>
<label>join:</label>{{array|join:"-"}}<br/>
<label>length:</label>{{dic_list|length}}<br/>
<label>divisibleby:</label>{{count|divisibleby:2}}<br/>
<label>length_is:</label>{{dic_list|length_is:3}}<br/>
<label>safe:</label>{{html_str|safe}}
<label>random:</label>{{dic_list|random}}<br/>
<label>slice:</label>{{html_str|slice:":10"}}<br/>
<label>slugify:</label>{{html_str|slugify}}<br/>
<label>upper:</label>{{html_str|upper}}<br/>
<label>urlize:</label>{{a_str|urlize}}<br/>
<label>wordcount:</label>{{first_big|wordcount}}<br/>
<label>timeuntil:</label>{{feature|timeuntil}}<br/>
<label>custom:</label>{{count|test:10}}<br/>
<br/><br/>
{% endblock %}
7.修改后重启服务
8.测试

posted on 2020-01-19 11:50 herisson_pan 阅读(5) 评论(0) 收藏 举报
浙公网安备 33010602011771号