DTL(Django templeate language)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DTL(Django templeate language)相关的知识,希望对你有一定的参考价值。

???????????????   lag   ??????   --   sel   wrap   nbsp   ??????   mesi   

???  ??????

?????????
def dtl(request):
    num = 3.14
    ss = ???abc123?????????
    # return render(request, ???django_dtl.html???, {???number???: num, ???ss???: ss})
    result = True
    list = [1, 2, 3, 4, 5]
    dic = {???name???: ???owen???, ???age???: 28}
    # ????????????????????????????????????{{ fn }} ???????????????????????????????????????????????????????????????
    def fn():
        return "fn function"
    class Person:
        name = "name"
        def __str__(self):
            return "??????Person???"
    p = Person()
    # locals()???????????????????????????????????????
    return render(request, ???django_dtl.html???, locals())
?????????
?????????
<li>{{ num }}</li>
<li>{{ list }} -- {{ list.0 }}</li>
<li>{{ dic }} -- {{ dic.age }}</li>
<li>{{ Person }}</li>  # Person() => __str__????????????
<li>{{ 123 }}</li>  # ????????????????????????????????????????????????
?????????

??? ?????????

?????????
1.?????????
    -- {{ ??????|?????????1[[:??????]|...|?????????n[:??????]] }}
    -- ????????????????????????????????????????????????0??????1?????????

2.????????????filter
    -- ??????   add:num
    -- ???????????????   length
    -- ?????????   default:???????????????  # ????????????????????????
    -- ?????????   upper
    -- ?????????   lower
    -- ??????   slice:???0:-1???
    -- ??????????????????????????????   filesizeformat
    -- ???????????????   truncatechars:13   # ?????????10??????????????????????????????...?????????
    -- ??????   date:???Y-m-d???
    -- ????????????   safe
?????????

??? ??????

?????????
1.?????????
    -- {% ????????? arg1 ... argn %}  eg: {% url ???test??? 1 2 3 %} => /test/1/2/3/

2.?????????
    -- ????????????url   {% url ???namespace:url_name??? arg1 arg2 %}
    -- ????????????now   {% now ???Y-m-d??? %}
    -- ?????????with   {% with ??????????????????flag??????????????? as flag %} {{ flag }} {% endwith %}
    -- Django CSRF??????   {% csrf_token %}
?????????

??? ??????

?????????
?????????
{% if ??????1 %}
    ??????1
{% elif ??????2 %}
    ??????2
{% else %}
    ??????n
{% endif %}

??????
1. if?????????????????????filter
2. ????????????
?????????

??? ?????????

?????????
{% for foo in iterate %}
    {{ forloop }}
{% empty %}
    ?????????????????????
{% endfor %}

??????
1. iterate??????????????????
2. iterate????????????filter
3. forloop?????????????????????????????????????????????forloop????????????????????????0?????????1????????????????????????0?????????1????????????????????????????????????????????????
4. empty???????????????????????????????????????????????????
?????????

??? ???????????????????????????

?????????
?????????
1. ????????????app?????????templatetags???
2. ???????????????????????????py???????????????owen_tags.py
3. ?????????????????????filter???tag???????????????????????????????????????py??????????????????{% load owen_tags %}

4. ?????????filter??????
from django.template import Library
register = Library()
@register.filter(name=???jump???)
def owen_jump(value, arg):
    try:
        return value * int(arg)
    except (ValueError, TypeError):
        return ??????
            
5. ?????????tag??????
@register.simple_tag(name=???add_two???)
def owen_add(arg1, arg2):
    try:
        return int(arg1) + int(arg2)
    except (ValueError, TypeError):
        try:
            return arg1 + arg2
        except Exception:
            return ??????
            
6. ???????????????????????????py??????????????????????????????????????????
{{ 10|jump:2}}  # 10 * 2
{% add_two 10 20 %}  # 10 + 20
?????????

 ??????????????????(??????)

{{ 123|add:"5" }} ???value??????????????????
{{ "AB???CD"|addslashes }} ????????????????????????????????????????????????javascript???
{{ "abcd"|capfirst }} ?????????????????????
{{ "abcd"|center:"50" }} ????????????????????????????????????????????????
{{ "123spam456spam789"|cut:"spam" }} ???????????????????????????
{{ value|date:"F j, Y" }} ???????????????
{{ value|default:"(N/A)" }} ??????????????????????????????
{{ value|default_if_none:"(N/A)" }} ??????None??????????????????
{{ ????????????|dictsort:"??????" }} ??????????????????
{{ ????????????|dictsortreversed:"??????" }} ??????????????????
{{ string|escape }} ?????????html??????
{{ 21984124|filesizeformat }} ???1024????????????????????????????????????1???????????????????????????
{{ list|first }} ???????????????????????????
{{ "ik23hr&jqwh"|fix_ampersands }} &??????&
{{ 13.414121241|floatformat }} ??????1???????????????????????????????????????
{{ 13.414121241|floatformat:"2" }} ??????2?????????
{{ 23456 |get_digit:"1" }} ???????????????????????????????????????1?????????
{{ list|join:", " }} ??????????????????????????????
{{ list|length }} ??????????????????
{% if ??????|length_is:"3" %} ??????????????????????????????
{{ "ABCD"|linebreaks }} ????????????
{{ "ABCD"|linebreaksbr }} ???????????? ????????????
{{ ??????|linenumbers }} ?????????????????????????????????
{{ "abcd"|ljust:"50" }} ????????????????????????????????????????????????????????????
{{ "ABCD"|lower }} ??????
{{ "abcdefghijklmnopqrstuvwxyz"|phone2numeric }} ??????????????????????????????????????????
{{ ???????????????|pluralize }} ??????????????????????????????????????????????????????1?????????s?????????????????????
{{ ???????????????|pluralize:"es" }} ??????es
{{ ???????????????|pluralize:"y,ies" }} ??????ies?????????y
{{ object|pprint }} ????????????????????????
{{ ??????|random }} ???????????????????????????
{{ string|removetags:"br p div" }} ????????????????????????html??????
{{ string|rjust:"50" }} ????????????????????????????????????????????????????????????
{{ ??????|slice:":2" }} ??????
{{ string|slugify }} ?????????????????????????????????????????????????????????????????????????????????
{{ 3|stringformat:"02i" }} ????????????????????????Python????????????????????????
{{ "EABCD"|striptags }} ??????[X]HTML????????????
{{ ????????????|time:"P" }} ???????????????????????????
{{ datetime|timesince }} ??????????????????????????????????????????
{{ datetime|timesince:"other_datetime" }} ?????????????????????????????????
{{ datetime|timeuntil }} ?????????????????????????????????????????????????????????????????????2????????????????????????
{{ datetime|timeuntil:"other_datetime" }} ?????????????????????????????????
{{ "abdsadf"|title }} ???????????????
{{ "A B C D E F"|truncatewords:"3" }} ???????????????????????????
{{ "111221"|truncatewords_html:"2" }} ?????????????????????html?????????????????????
{{ list|unordered_list }} ???????????????????????????html???????????????
{{ string|upper }} ????????????
{{ string|urlize }} ???URLs???????????????????????????????????????????????????????????????
{{ string|urlizetrunc:"30" }} ???????????????????????????????????????????????????????????????
{{ "B C D E F"|wordcount }} ?????????
{{ "a b c d e f g h i j k"|wordwrap:"5" }} ??????????????????????????????????????????
{{ boolean|yesno:"Yes,No,Perhaps" }} ?????????????????????????????????????????? ??????,???,None

 

以上是关于DTL(Django templeate language)的主要内容,如果未能解决你的问题,请参考以下文章

Django DTL模板语法中的过滤器

Django模板语言(DTL)基础

DJango模块语言(DTL)语法简单介绍

Django(28)Django模板介绍

Django DTL模板语法中的循环

Django DTL模板语法中的判断