91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Django基礎知識之 模板配置和輸出

發布時間:2020-07-21 11:19:00 來源:網絡 閱讀:207 作者:ckllf 欄目:編程語言

  一,get_template 函數

  from django.template.loader import get_template

  from django.http import HttpResponse

  import datetime

  def temp_test(request):

  now = datetime.datetime.now()

  t = get_template('temp_test.html')

  html = t.render({'current_date': now})

  return HttpResponse(html)

  模板輸出:

  It is now {{ current_date }}

  get_template() 函數以模板名稱為參數,在文件系統中找出模塊的位置,打開文件并返回一個編譯好的Template 對象

  二,render_to_response() 渲染模板

  from django.shortcuts import render_to_response

  import datetime

  def current_datetime(request):

  now = datetime.datetime.now()

  return render_to_response('current_datetime.html', {'current_date': now})

  render_to_response() 的第一個參數必須是要使用的模板名稱。 如果要給定第二個參數,那么該參數必須是為該模板創建 Context 時所使用的字典。 如果不提供第二個參數, render_to_response() 使用一個空字典。

  三,locals() 技巧

  from django.shortcuts import render_to_response

  import datetime

  def temp_test(request):

  now = datetime.datetime.now()

  return render_to_response('temp_test.html', locals())

  locals() 的值,它囊括了函數執行到該時間點時所定義的一切變量

  此時對應html輸出的格式應該為:

  It is now {{ now }}

  四,get_template()中使用子目錄

  from django.shortcuts import render_to_response

  import datetime鄭州婦科醫院 http://www.sptdfk.com/

  def temp_test(request):

  now = datetime.datetime.now()

  return render_to_response('member/temp_test.html', locals())

  只需在調用 get_template() 時,把子目錄名和一條斜杠添加到模板名稱之前

  由于 render_to_response() 只是對 get_template() 的簡單封裝, 你可以對 render_to_response() 的第一個參數做相同處理

  五,模板包含和模板繼承

  1,模板包含:include(); 公共頭部,公共尾部,以當前模板目錄路徑為準

  {% include 'common/nav.html' %}

  It is now {{ now }}

  2,模板繼承:block 用法

  概念:模板繼承就是先構造一個基礎框架模板,而后在其子模板中對它所包含站點公用部分和定義塊進行重載

  My helpful timestamp site

  {% block content %}{% endblock %}

  {% block footer %}

  Thanks for visiting my site.

  {% endblock %}

  所有的 {% block %} 標簽告訴模板引擎,子模板可以重載這些部分。 每個 {% block %} 標簽所要做的是告訴模板引擎,該模板下的這一塊內容將有可能被子模板覆蓋。

  則子模板就可以更改為:

  {% extends "base.html" %}

  {% block title %}The current time{% endblock %}

  {% block content %}

  It is now {{ current_date }}.

  {% endblock %}

  功能核心點:

  1,如果在模板中使用 {% extends %} ,必須保證其為模板中的第一個模板標記。 否則,模板繼承將不起作用。

  2,一般來說,基礎模板中的 {% block %} 標簽越多越好。 記住,子模板不必定義父模板中所有的代碼塊,因此可以用合理的缺省值對一些代碼塊進行填充,然后只對子模板所需的代碼塊進行(重)定義

  3,如果需要訪問父模板中的塊的內容,使用 {{ block.super }} 這個標簽,這一個魔法變量將會表現出父模板中的內容。 如果只想在上級代碼塊基礎上添加內容,而不是全部重載,該變量就顯得非常有用。

  4,不允許在同一個模板中定義多個同名的 {% block %} 。

  5,{% extends %} 對所傳入模板名稱使用的加載方法和 get_template() 相同。 也就是說,會將模板名稱被添加到 TEMPLATE_DIRS 設置之后。

  6,多數情況下, {% extends %} 的參數應該是字符串,但是如果直到運行時方能確定父模板名,這個參數也可以是個變量


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

六盘水市| 吴江市| 朝阳区| 凉山| 巴林右旗| 荥经县| 依安县| 灵川县| 杭锦后旗| 马鞍山市| 民丰县| 石城县| 固始县| 永州市| 浑源县| 溧阳市| 阳山县| 长丰县| 迁西县| 舟曲县| 和平县| 剑阁县| 盐城市| 皋兰县| 客服| 绵竹市| 凤阳县| 榆林市| 定陶县| 新营市| 远安县| 高雄市| 乐平市| 长寿区| 宁陕县| 锡林郭勒盟| 晋宁县| 涞源县| 定兴县| 水富县| 丰都县|