国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

django模板結構優化的方法

2020-02-16 01:25:06
字體:
來源:轉載
供稿:網友

模版結構優化

引入模版

有時候一些代碼是在許多模版中都用到的。如果我們每次都重復的去拷貝代碼那肯定不符合項目的規范。一般我們可以把這些重復性的代碼抽取出來,就類似于Python中的函數一樣,以后想要使用這些代碼的時候,就通過 include 包含進來。這個標簽就是 include 。示例代碼如下:

# header.html<p>我是header</p># footer.html<p>我是footer</p># main.html{% include 'header.html' %}<p>我是main內容</p>{% include 'footer.html' %}

include 標簽尋找路徑的方式。也是跟 render 渲染模板的函數是一樣的。

默認 include 標簽包含模版,會自動的使用主模版中的上下文,也即可以自動的使用主模版中的變量。如果想傳入一些其他的參數,那么可以使用 with 語句。示例代碼如下:

# header.html<p>用戶名:{{ username }}</p># main.html{% include "header.html" with username='huangyong' %}

模板繼承:

在前端頁面開發中。有些代碼是需要重復使用的。這種情況可以使用 include 標簽來實現。也可以使用另外一個比較強大的方式來實現,那就是模版繼承。模版繼承類似于 Python 中的類,在父類中可以先定義好一些變量和方法,然后在子類中實現。模版繼承也可以在父模版中先定義好一些子模版需要用到的代碼,然后子模版直接繼承就可以了。并且因為子模版肯定有自己的不同代碼,因此可以在父模版中定義一個block接口,然后子模版再去實現。以下是父模版的代碼:

{% load static %}<!DOCTYPE html><html lang="en"><head>  <link rel="stylesheet" href="{% static 'style.css' %}" rel="external nofollow" />  <title>{% block title %}我的站點{% endblock %}</title></head><body>  <div id="sidebar">    {% block sidebar %}    <ul>      <li><a href="/" rel="external nofollow" >首頁</a></li>      <li><a href="/blog/" rel="external nofollow" >博客</a></li>    </ul>    {% endblock %}  </div>  <div id="content">    {% block content %}{% endblock %}  </div></body></html>

這個模版,我們取名叫做 base.html ,定義好一個簡單的 html 骨架,然后定義好兩個 block 接口,讓子模版來根據具體需求來實現。子模板然后通過 extends 標簽來實現,示例代碼如下:

{% extends "base.html" %}{% block title %}博客列表{% endblock %}{% block content %}  {% for entry in blog_entries %}    <h2>{{ entry.title }}</h2>    <p>{{ entry.body }}</p>  {% endfor %}{% endblock %}

需要注意的是:extends標簽必須放在模版的第一行。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 庆阳市| 武义县| 佛坪县| 湘阴县| 张家界市| 邵阳市| 乌拉特后旗| 肇庆市| 陇西县| 深水埗区| 汤阴县| 霸州市| 永修县| 和静县| 那曲县| 辉南县| 丹东市| 陕西省| 全南县| 横峰县| 乌兰县| 公安县| 西宁市| 辽宁省| 兴国县| 深水埗区| 嵊州市| 绥江县| 广州市| 诸城市| 青冈县| 墨江| 阿瓦提县| 鄂伦春自治旗| 社会| 东乡县| 庄浪县| 永年县| 宿松县| 即墨市| 湖州市|