django源码分析-templatetags模块分析


该模块是django系统定义的一些特殊标签,包括:缓存、国际化、本地化、静态资源、时区等。

  • init.py :模块初始化文件。
  • cache.py : 缓存标签,用法:
{% load cache %}
{% cache [expire_time] [fragment_name] %}
    .. some expensive processing ..
{% endcache %}
  • i18n.py : django对国际化标签的支持。这里先科普一些 i18n和i10n。

国际化是指把原来为英文设计的计算机系统或者应用软件改写成同时支持多种语言和文化习俗的过程。在英文中,国际化(Internationalization)被缩写为I18N,即只取首位两个字母,中间字母为18个。国际化中只处理语言的部分叫多语言化(Multilingualization)缩写为M17N。比如一个软件同时支持英语、法语、日语、俄语等多种语言。

本地化是指把计算机系统或者应用软件转变为使用并兼容某种特定语言的过程。在英文中,本地化(Localization)被缩写为L10N,即只取首位两个字母,中间字母为10个。

用法:

{% get_available_languages as languages %}
{% for language in languages %}
...
{% endfor %}
  • l10n.py : django对本地化标签的支持。用法:
{% localize off %}
    var pi = {{ 3.1415 }};
{% endlocalize %}
  • static.py : 加载静态资源标签,用法:
{% static "myapp/css/base.css" %}
{% static variable_with_path %}
{% static "myapp/css/base.css" as admin_base_css %}
{% static variable_with_path as varname %}
  • tz.py :django标签对时区的支持。用法:
{% timezone "Europe/Paris" %}
    It is {{ now }} in Paris.
{% endtimezone %}

更多Django教程

学习更多Django教程