django template 模板

九.Template模板
Template 模板是根据view传过来数据在html展示的功能,典型python 模板jinjia2库提供丰富的上下文展示func
创建template位置在项目下与app 同层级目录下
9.1配置模板路径:
修改settings.py,BASE_DIR是project的目录dir:
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR,'templates')],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

9.2templates 语法:
{{varname }}表示变量
{ %for var in object% }
<p>{{ var.age}}</p>
{ %endfor% }
# 语法:
{{ 变量|过滤器 }}
# 比如:
#自动转义html
{{ name|safe }}
{{ name|lower  }}
# 表示将变量name的值全部变成小写
# 竖线|可以理解为python中的圆点(.)
# 可以在if标签中,使用过滤器,并结合运算符一起使用
{% if user_list %}
  用户人数:{{ user_list|length }}
{% elif black_list %}
  黑名单数:{{ black_list|length }}
{% else %}
  没有用户
{% endif %}
#其他
{% if name|length > 2 %}
# 过滤器可以用来串联,构成过滤器链
name | lower | upper
# 过滤器可以传递参数
list | join:”,”
# 设置默认值的过滤器
value | default:”0”
#设置日期
value | date:”YYYY-mm-dd”

#templates org help
# https://docs.djangoproject.com/en/1.10/howto/custom-template-tags/

template自定义tag:
from django import template
register = template.Library()  # 生成一个注册的实例对象
@register.simple_tag()
def se(arg1,arg2):
    return arg1 + arg2
# html
<h3>自定义的simple_tag示例</h3>
    {% load s1 %}
    <p>{% se 2 4 %}</p>

  

posted @ 2019-10-29 11:01  不带R的墨菲特  阅读(168)  评论(0编辑  收藏  举报