Django 模板系统2

1. tags
2. 母版和继承
  1. 母版
  就是一个普通的HTML文件,提取多个页面的公共部分
  减少代码量 修改十分方便

  定义block块

  2. 使用(继承)
  在子页面中
  {% entends 'base.html' %}
  重新修改block块中的内容
  3. 注意事项:
    1. 把{% extends 'base.html' %} 写在第一行
    2. 修改的内容写在block中,写在外面不显示
    3. {% extends name %} name应该是变量 或者是字符串 继承母版的名字
    4. 母版中定义多个block块,一般还有 js 块 和 css块



3. 组件
  1. 就是一小段HTML代码 多个页面都用到的内容 nav.html
  2. 在任意的模板中使用
  {% include 'nav.html' %}



4. 静态文件相关

  1. {% load staticfiles %} 或者 {% load static %}
  2. {% static 'css/pub.css' %} ——》 先去settings中获取STATIC_URL的配置,和后面提供的参数进行拼接

    1. {% load static %}
    2. <link rel="stylesheet" href="{% get_static_prefix %}css/pub.css">



5. 自定义simpletag和自定义inclusion_tag
  1. 在app下创建一个名叫templatetags的python包
  2. 在templatetags里建一个py文件
  3. 在py文件中编辑:
  from django import template
  register = template.Library()


  @register.simple_tag
  def join_str(arg1, arg2, arg3,*args,**kwargs):
  print(args)
  print(kwargs)
  return '_'.join([arg1, arg2, arg3])+'*'.join(args)

  @register.inclusion_tag('pagination.html')
  def pagination(total, current):
  return {'total': range(1, total + 1), 'current': current}

  4.使用
  {% load py文件名 %}
  {% 函数名 参数1 参数2 %}

  

原文地址:https://www.cnblogs.com/zhaosijia/p/9627803.html