需求:Django框架中,后端传入前端数据量太大,展示不下,需要只展示前几个字符串
解决方案:自定义过滤器返回前几个字符串
- 在app目录下新建
templatetags
目录,在该目录中新建__init__.py
以及myFilters.py
,myFilters.py
中定义过滤器返回前10个字符串
from django import template
register = template.Library() # register 变量固定
@register.filter
def InterceptString(post_result):
# 字符串截取
return post_result[:10]
- 在
settings.py
文件中注册app
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'accounts',
'accounts.templatetags' # 新增这一行
]
- 使用
<head>
<meta charset="UTF-8">
<title>config json</title>
<link rel="stylesheet" href="/static/plugins/bootstrap-3.4.1-dist/css/bootstrap.css">
<link rel="stylesheet" href="/static/plugins/bootstrap-3.4.1-dist/js/bootstrap.js">
{% load myFilters %} <!--引入自定义的文件名-->
</head>
{% for event in event_info_list %}
<tr>
<td>{{ event.current_time }}</td>
<td>{{ event.host_ip }}</td>
<td>{{ event.service_name }}</td>
<td title="{{ event.post_result }}">{{ event.post_result|InterceptString}}...</td> <!--使用-->
</tr>
{% endfor %}
展示如下:
原先结果展示如下: