1. 程式人生 > >Django 模板系統2

Django 模板系統2

分享 在外 變量 print 十分 普通 python 自定義 current

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 %}

  技術分享圖片

Django 模板系統2