<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Django模板層

      Posted on 2022-11-27 21:37  呱呱呱呱嘰里呱啦  閱讀(36)  評論(0)    收藏  舉報

      Django模板層

      模板語法傳值

      # 模板語法形式:1.{{ 變量相關 }} 2.{% 邏輯相關 %}
      # 模板語法可以傳遞的后端數據類型
      # 包括基本數據類型、函數(自動加括號執行,并傳遞返回值,不支持傳參)、類(自動實例化)、對象(可以調用對象自動傳參或者無參方法 eg:__str__(self))
      # 原則,先判斷接收的變量名是否可以添加'()'調用,能調用就調用。
      
      # django模板語法的取值,只能使用'.'取值,固定格式
      '''
      <p>{{ dict1.key1 }}</p>
      <p>{{ list1.index1 }}</p>
      <p>{{ dict1.key1.index1.keyx }}</p>
      '''
      # 可以'.'鍵'.'索引或者混用
      

      過濾器

      # 即模板語法內置方法
      # 基本語法:{{ 數據|過濾器:參數 }}
      s = 'abc'
      <p>{{ s|lenth }}</p> # 統計長度,即 <p>3</p>
      <p>{{ n|default:'空' }}</p> # 默認值,當n為True,就傳遞n的值,否則傳遞default值
      <p>{{ file_size|filesizeformat }}</p> # 傳遞格式化后的文件大小
      <p>{{ current_time|date:'Y-m-d H:i:s' }}</p> # 傳遞格式化后的時間
      <p>{{ l|slice:'0:4:2' }}</p> # 傳遞切片
      <p>{{ info|truncatechars:9 }}</p> # 傳遞截取后的字符,效果:123456...
      <p>{{ info|truncatewords:3 }}</p> # word1 word2 word3...(長度不含...,而且切取依據是空格)
      <p>{{ info|cut:' ' }}</p> # 傳遞移除' '之后的字符
      <p>{{ list1|join:'$' }}</p> # 傳遞用'$'連接各元素后的字符串
      <p>{{ n|add:2 }}</p> # 傳遞n+1
      <p>{{ s|add:info }}</p> # 傳遞s+info
      <p>{{ h1|safe }}</p> # 取消轉義
      # 后端取消轉義
      html_code = '<h1>ahhahahahah</h1>'
      h2 = mark_safe(html_code)
      

      標簽

      # for循環
      '''
      {% for li in list1 %}
              {{ forloop }}
      {% endfor %}
      '''
      '''
      {% for li in list1 %}
              <p>{{ li }}</p>
      {% endfor %}
      '''
      # if判斷
      '''
      {% if bllo1 %}
          <p>hahahah</p>
      {% elif %}
          <p>wahahahahahha</p>
      {% else %}
          <p>xixiixixxiix</p>
      {% endif %}
      '''
      
      # for + if
      '''
      {% for li in list %}
          {% if forloop.first %}
              <p>第一次循環</p>
          {% elif forloop.last %}
              <p>最后一次循環</p>
          {% else %}
              <p>{{ li }}</p>
          {% endif %}
      
          {% empty %}
              <p>for循環的對象是空</p>
      {% endfor %}
      '''
      
      '''
      {% for foo in dict1.keys/.values/.items %}
              {{ forloop }}
      {% endfor %}
      '''
      
      # with語法
      '''
      {% with dict1.key2.index1.keyx as s %}
              <p>s</p>
              <p>s</p>
              <p>s</p>
              <p>s</p>
              <p>s</p>
              <p>s</p>
      {% endwith %}
      '''
      

      自定義過濾器、標簽、inclusion_tag

      '''
      1.在應用下創建一個templatetags文件夾
      2.在該文件夾內創建任意名稱的py文件 eg: mytag.py
      3.在該py文件內:
      from django import template
      register = template.Library()
      
      '''
      
      # 自定義過濾器(最多兩個參數)
      @register.filter(name='sum_filter')
      def my_sum(a1,a2):
          return a1 + a2
      # 自定義過濾器調用
      {% load mytag %}
      <p>{{ a1|sum_filter:a2 }}</p>
      
      
      # 自定義標簽(可以有多個參數)
      @register.simple_tag(name='my_tag')
      def index(a, b, c, d):
          return f'{a}/{b}/{c}/w0obha2h00'
      
      # 自定義標簽的調用
      {% load mytag %}
      <p>{% my_tag 'a' 'b' 'c' 'd' %}</p>
      
      
      # 自定義inclusion_tag
      @register.inclusion_tag('left_menu.html')
      def left(n):
          data = [f'第{i}項' for i in range(n)]
          return locals() #將data傳遞給left_menu.html 即 return {'data':data}
      # 定義渲染工具頁面 left_menu.html
      '''
      <ul>
          {% for datum in data %}
              <li>{{ datum }}</li>
          {% endfor %}
      </ul>
      '''
      # 自定義inclusion_tag調用
      {% load mytag %}
      {% left 9 %}
      

      模板的繼承

      # 模板頁面設置
      '''
      <div class="panel-body">
      
      {% block var_content %}
          <div class="jumbotron">
            <h1>Hello, world!</h1>
            <p>...</p>
            <p><a class="btn btn-primary btn-lg" href="#" role="button">Learn more</a></p>
          </div>
      {% endblock %}
      
      </div>
      '''
      
      # 實例頁面
      '''
      {% extends 'home.html' %}
      
      {% block var_content %}
          <h1>注冊頁面</h1>
      {% endblock %}
      '''
      
      # 一般情況下,模板頁面應該至少有三塊可以被修改的區域
      '''
      1.css區域
      {% block css %}
      {% endblock %}
      2.html區域
      {% block content %}
      {% endblock %}
      3.js區域
      {% block js %}
      {% endblock %}
      '''
      

      模板的導入

      # 即將模板頁面模塊化,然后實例頁面直接使用語法將模板頁面所有代碼直接導入
      {% include 'part.html' %}
      
      主站蜘蛛池模板: 欧美日本精品一本二本三区| 日韩精品一区二区三免费| 91亚洲一线产区二线产区| 成人白浆一区二区三区在线观看| 最新精品露脸国产在线| 亚洲中文字幕日产无码成人片| 亚洲AV无码一二区三区在线播放| 四虎影视永久无码精品| 久久国产av影片| 精品偷拍一区二区三区| 免费国产一区二区不卡| 欲色欲色天天天www| 综合色在线| 国产一区二区不卡视频在线| 欧洲免费一区二区三区视频| 高陵县| 黄色特级片一区二区三区| 成人网站免费观看永久视频下载| 午夜国产理论大片高清| 国产肥臀视频一区二区三区| 潮喷失禁大喷水无码| 博客| 国产一区二区不卡在线| 一区二区中文字幕视频| 亚洲第一极品精品无码久久| 免费可以在线看a∨网站| 日本高清日本在线免费| 婷婷久久香蕉五月综合加勒比| 国产AV永久无码青青草原| 在线天堂新版资源www在线下载| 页游| 18岁日韩内射颜射午夜久久成人| 欧美日韩国产va在线观看免费 | 欧美日韩精品一区二区在线观看| 日本成熟少妇喷浆视频| 人妻无码久久久久久久久久久 | 亚洲伊人久久精品影院| 四虎影视一区二区精品| 人妻精品久久无码区| 亚洲狠狠婷婷综合久久久| 精品一区二区三区日韩版|