特殊的标签和过滤器

阅读: 23513     评论:0

国际化标签和过滤器

Django还提供了一些模板标签和过滤器,用以进行国际化的控制。它们允许对翻译,格式化和时区转换进行粒度控制。

i18n

此标签允许在模板中指定可翻译文本。要启用它,请将USE_I18N设置为True,然后加载{% load i18n %}

l10n

此标签提供对模板的本地化控制,需要先{% load l10n %}。通常将USE_L10N设置为True,以便本地化默认处于活动状态。

tz

此标签对模板中的时区进行控制。 像l10n,只需要使用{% load tz }。但通常会将USE_TZ设置为True,它会自动转换本地时间。

其他标签和过滤器库

Django附带了一些其他库带来的模板标签,必须在INSTALLED_APPS设置中显式启用,并在模板中添加{% load %}标记。

django.contrib.humanize

一组Django模板过滤器,用于让数据“人性化”,更加可读。

django.contrib.staticfiles

提醒:早期版本中的{% load staticfiles %}已经作废。

由于默认情况下,settings的INSTALL_APPS中已经添加了'django.contrib.staticfiles',,所以我们可以直接load加载static标签,然后在模板中使用它们。

在开发环境中,我们可以提供额外的STATICFILES_DIRS目录列表作为全局性的静态文件目录。

static标签用于在生产环境中链接保存在STATIC_ROOT中的静态文件。例如:

{% load static %}

<img src="{% static "images/hi.jpg" %}" alt="Hi!" />

还可以使用变量:

{% load static %}

<link rel="stylesheet" href="{% static user_stylesheet %}" type="text/css" media="screen" />

也可以像下面这么使用:

{% load static %}

{% static "images/hi.jpg" as myphoto %}
<img src="{{ myphoto }}"></img>

get_static_prefix

如果你需要更好地控制将STATIC_URL注入到模板的位置和方式,可以使用get_static_prefix 模板标签,比如:

static/111.jpg

{% load static %}

<img src="{% get_static_prefix %}images/hi.jpg" alt="Hi!">

如果您多次需要该值,则可以使用第另一种形式来避免额外的处理:

{% load static %}
{% get_static_prefix as STATIC_PREFIX %}

<img src="{{ STATIC_PREFIX }}images/hi.jpg" alt="Hi!">
<img src="{{ STATIC_PREFIX }}images/hi2.jpg" alt="Hello!">

我们可以实际测试一下效果。

get_media_prefix

和上面的类似,不过是服务于媒体文件的。

{% load static %}

<body data-media-url="{% get_media_prefix %}">

 Django内置过滤器 人类可读性 

评论总数: 0


点击登录后方可评论