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标签,然后在模板中使用它们。
在开发环境中,我们可以提供额外的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>
如果你需要更好地控制将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!">
我们可以实际测试一下效果。
和上面的类似,不过是服务于媒体文件的。
{% load static %} <body data-media-url="{% get_media_prefix %}">