Django还提供了一些模板标签和过滤器,用以控制模板中国际化的每个方面。它们允许对翻译,格式化和时区转换进行粒度控制。
此标签允许在模板中指定可翻译文本。要启用它,请将USE_I18N
设置为True,然后加载{% load i18n %}
。
此标签提供对模板的本地化控制,只需要使用{% load l10n %}
。通常将USE_L10N
设置为True,以便本地化默认处于活动状态。
此标签对模板中的时区进行控制。 像l10n,只需要使用{% load tz }
,但通常还会将USE_TZ
设置为True,以便默认情况下转换为本地时间。
Django附带了一些其他模板标签,必须在INSTALLED_APPS
设置中显式启用,并在模板中添加{% load %}
标记。
一组Django模板过滤器,用于向数据添加“人性化”,更加可读。
提醒:早期版本中的{% load staticfiles %}
已经作废。
由于默认情况下,settings的INSTALL_APPS中已经添加了'django.contrib.staticfiles',
,所以我们可以直接load加载static标签,然后在模板中使用它们。
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>
如果你需要更好地控制将STATIC_URL
注入到模板的位置和方式,可以使用get_static_prefix
模板标签,比如:
{% 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!">
我们可以实际测试一下效果。
和上面的类似,不过是服务于媒体文件的。
{% load static %} <body data-media-url="{% get_media_prefix %}">