模板變量,過濾器和靜態文件引用

模板變量,過濾器和靜態文件引用

模板路徑

  • Djiango先到settings里面找templates下的DIRS查看是否有路徑,也是從上往下依次尋找,找到就返回。
  • 如果DIRS沒有,就到APP_DIRS里面尋找。但是APP要先在INSTALLED_APPS里面進行注冊然后根據INSTALLED_APPS里面從上往下順序依次尋找。

模板變量

  • 動態頁面:隨時間改變會改變相應數據內容等(并不是JS就是動態頁面)
  • 靜態頁面:反之

  • 語法:{{變量名}},變量名命名規則和py變量一樣,但是卻不能以下劃線_開頭;注意避免關鍵字。

例如編寫顯示時間:

from datetime import datetimedef index(request):now = datetime.now()return render(request,'teacher/index.html',context={'now' : now})#HTML
<p>當前時間是:{{now}}</p>
#注意,倆個大括號里面的now對應的是context里的key的now

1488523-20190327125009506-1650294433.png

此時顯示的時間并不是北京時間,要進行修改。
到項目目錄下的settings里面最下面的TIME_ZONE = 'UTC'進行修改
改為TIME_ZONE = 'Asia/Shanghai'
(不要問我為什么不是Beijing,改成Beijing會報錯,畢竟上海比較有名吧,估計是歷史原因)

修改之后:
1488523-20190327125451894-1340596529.png

關于模板變量的解析

  • 列表list
    lt = [0,1,2]return render(request,'teacher/index.html',context={'lt':lt})#HTML
<p>傳遞的列表是:{{ lt }}</p>
<p>列表下標是1的元素是:{{ lt.1 }}</p>

說明:
傳遞列表的時候獲取某個元素要使用list_name.索引的形式進行獲取

結果如圖:
1488523-20190327130703744-539489579.png

  • 字典
dt = {'name' : '小明','age' : 1}return render(request,'teacher/index.html',context={'dt':dt})#HTML
<p>傳遞的字典是:{{ dt }}</p>
<p>傳遞的字典['name']是:{{ dt.name }}</p>

說明:同樣是通過dt_name.key的形式獲取某個value

結果如圖:

1488523-20190327131828761-1052000141.png

  • 函數
    def func():return 'Hello world'return render(request,'teacher/index.html',context={'func':func})#HTML
<p>傳遞的func是:{{ func }}</p>

說明:
函數不能設置有參數,只能設置無參數函數。因為在解析的時候解析的是變量名,而變量名是不可以攜帶變量的。

結果如圖:
1488523-20190327132835807-1071729687.png

變量解析規則

  1. 當模板引擎遇到了變量時,會計算該變量,并以結果替換之
  2. 當模板引擎遇到了變量時,按照以下順序嘗試查找:
    • 字典鍵值查找
    • 屬性或方法查找
    • 數字索引查找
  3. 如果結果是一個可調用的(callabled),則調用他,結果為模板變量的值

解釋:

  1. 如果ret = 1+1,的時候,解析出來的結果會用2代替1+1
  2. 字典.方法名,會解析出來方法的返回值;但是如果字典里面含有和方法重名的key的時候,會按照順序,解析為所對應的value
  3. 調用函數

常用的過濾器

現在先介紹內置過濾器(自定義以后聊)

過濾器:

  • 語法:{{fruits|lower}}
  • 作用: 對變量進行過濾。在真正渲染出來之前,過濾器會根據功能處理好變量,然后得出結果后再替換掉原來的變量展示出來。
  • 管道符號進行鏈式調用,比如實現一個功能,先把所有字符變成小寫,把第一個字符轉換成大寫。{{fruits|lower|capfirst|..|..}
  • 使用參數:過濾器可以使用參數,在過濾器名稱后面使用冒號”:”再加上參數,比如要把一個字符串中所有的空格去掉,則可以使用cut過濾器,{{fruits|cut:" "}}

語法:{{變量名|過濾器}}
例如:

  • 時間的:{{name|date:"D d M Y"}}
  • 列表的:
    • name|add:數字
    • name|first/last
    • name|slice:"num:num"

注意:不要習慣性在冒號倆邊加上空格,會報錯

常用的過濾器:

1488523-20190327151640431-900264333.png

date和time過濾器格式:

1488523-20190327151734647-501497144.png

靜態文件的引用

路徑設置

靜態文件由內建APP'django.contrib.staticfiles'管理,調試用到,實際使用不會用到
django.contrib.staticfiles這個app被包含在INSTALL_APPS中
配置語法:

#setting.py
STATICFILES_DIRS = []

步驟:

  1. 在項目根目錄下創建一個static,注意要分APP文件夾
  2. 寫入STATIC_URL = '/static/'(默認就有)
  3. 在settings最下面加入STATICFILES_DIRS = [os.path.join(BASE_DIR,'static')]

靜態文件引用

{% load static %}#寫在模板頂部#導入的時候
src = "{% static 'app_name/img/name.jpg' %}"
如此類推

轉載于:https://www.cnblogs.com/pygive/p/10607779.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/394551.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/394551.shtml
英文地址,請注明出處:http://en.pswp.cn/news/394551.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

antd option寬度自適應_WordPress文章中添加自適應寬度的表格——墨澀網

WordPress文章中添加自適應表格&#xff0c;前面寫文章的時候需要用到表格來表達陣列信息&#xff0c;但是在WordPress添加表格不想是在office中那樣方便&#xff0c;需要借助插件或者代碼才可以實現&#xff0c;今天分享一個不需要安裝插件純代碼實現WordPress文章中添加自適應…

Go語言程序記錄日志

許多軟件系統運行中需要日志文件。Go語言程序中&#xff0c;輸出日志需要使用包"log"&#xff0c;編寫程序十分簡單。 像Java語言程序&#xff0c;輸出日志時&#xff0c;往往需要使用開源的軟件包來實現&#xff0c;編寫程序稍微復雜一些。 Go語言的包"log&quo…

如何讓代碼更易于維護_如何輕松地使您的網站更易于訪問

如何讓代碼更易于維護by Jaroslav Vaňkt通過JaroslavVaňkt 如何輕松地使您的網站更易于訪問 (How you can easily make your website more accessible) As a designer, developer, or even product manager, you have thousands of responsibilities. Every project require…

計算機安全概論論文,計算機安全探討論文畢業論文(7篇).doc

計算機安全探討論文畢業論文(7篇)計算機安全探討論文畢業論文(7篇)計算機安全探討論文畢業論文(7篇)預讀: 第一篇:終端計算機安全檢查技術研究【摘要】信息安全保密管理工作的重點和計算機終端檢查的難點,促進了計算機安全檢查技術的發展.本文回顧了終端檢查技術經歷的三個階段…

OO第一單元總結

OO第一單元總結 第一次作業總結 這是我第一次接觸Java和面向對象思想&#xff0c;最一開始&#xff0c;我建立了簡單的類和對象的概念&#xff0c;多虧了第一次作業難度和復雜度較低&#xff0c;我才沒有崩掉hhh。 第一次作業我只分了三個類&#xff0c;一個main&#xff0c;一…

接口開發指的是什么_企業在什么情況下要選擇定制開發軟件

軟件定制開發是指軟件開發商依據我們的需求停止量身定制的開發&#xff0c;軟件定制開發相關于單純產品的施行周期長、本錢高、風險大。假如根據定制開發的工作量或水平來分&#xff0c;我們能夠分為完整定制開發和局部定制開發&#xff0c;完整定制開發是指軟件開發公司依據我…

python2x 安裝 psutil

安裝psutil模塊&#xff1a; wget https://pypi.python.org/packages/source/p/psutil/psutil-2.0.0.tar.gz --no-check-certificatetar -zxvf psutil-2.0.0.tar.gzcd psutil-2.0.0python setup.py install轉載于:https://www.cnblogs.com/yingdiblog/p/7347325.html

c++編碼風格指南_帶回家的編碼挑戰的基本指南

c編碼風格指南by Jane Philipps簡菲利普斯 帶回家的編碼挑戰的基本指南 (The Essential Guide to Take-home Coding Challenges) 介紹 (Introduction) Hi, I’m Jane. I wrote this guide because I want to help others with non-traditional backgrounds succeed on take-ho…

計算機沒有搜索篩選功能,EXCEL中篩選工具怎么沒有搜索功能

EXCEL中篩選工具怎么沒有搜索功能卡飯網本站整理2018-04-01excel是一款數據處理工具&#xff0c;可以在眾多的數據中找到想要的經過處理之后的數據&#xff0c;而最直接方便的功能就是篩選。請閱讀下文&#xff0c;了解如何對數據進行篩選。如下圖所示的學生成績中&#xff0c;…

談談最短路徑

最近遇到一些個問題&#xff0c;有關最短路徑算法&#xff0c;又稱A算法轉載于:https://www.cnblogs.com/swell/p/6108850.html

51nod 1851 俄羅斯方塊(思維題)

分析&#xff1a;假設n>m&#xff0c;m為1,2單獨討論下&#xff0c;否則可以用第二行第一個把所有黑塊搞到2x2的格子里&#xff0c;不斷用凸出來的那個角一列一列把黑的變白就行了。然后只要黑色有偶數塊都可以構造出來。復雜度O(nm) #include <iostream> #include &l…

python發郵件詳解_python實現發送郵件詳解

[Python]代碼#_*_encoding:utf-8_*_#script for python3.2#-------------------------------------------------------------------------------# Name: 發送郵件# Purpose:## Author: QiuChangJie## Created: 10/09/2012# Copyright: (c) cj.qiu 2012# Licence: #------------…

gprof, Valgrind and gperftools - an evaluation of some tools for application level CPU profiling on

2019獨角獸企業重金招聘Python工程師標準>>> In this post I give an overview of my evaluation of three different CPU profiling tools: gperftools, Valgrind and gprof. I evaluated the three tools on usage, functionality, accuracy and runtime overhead…

xp計算機屬性打不開,xp系統我的電腦右鍵屬性打不開怎么辦

在使用xp系統過程中,我們經常需要打開“我的電腦”右鍵屬性,查看系統信息以及進行虛擬內存、性能方面的設置,不過有深度技術ghost xp sp3純凈版用戶右鍵點擊我的電腦,發現右鍵菜單中的“屬性”打不開,出現這個問題通常是注冊表禁用了這個屬性,下面小編跟大家介紹xp系統我的電腦…

狀態機學習(二)解析INI文件

題目來自<系統程序員成長計劃> 作者:李先靜. 狀態變化如下 #include <string> #include <iostream> using namespace std;string s "[GRP]\n\ name def \n\ data 2016.11.29 \r\n\ ; this is a comment \r\n\ str this is a test \n\ [zhangshan]…

接口之用例編寫、驗證

一、用Excel編寫用例&#xff08;xlsx格式&#xff09; 截圖僅供參考&#xff0c;實際用例編寫需要根據實際情況來。 二、用例加載、驗證 1、數據的加載 import xlrd,xlwt #python操作excel主要用到xlrd和xlwt這兩個庫&#xff0c;即xlrd是讀excel&#xff0c;xlwt是寫excel的庫…

計算機二級word真題書娟,計算機二級word試題.docx

PAGEPAGE # / 80Word試題在考生文件夾下打開文檔 word.docx &#xff0c;按照要求完成下列操作并以該文件名( word.docx )保存文檔。某高校為了使學生更好地進行職場定位和職業準備&#xff0c;提高就業能力&#xff0c;該校學工處將于2013 年 4月 29 日(星期五) 19:30-21:30 在…

農場js_通過銷售農場商品來解釋Web API

農場jsby Kevin Kononenko凱文科諾年科(Kevin Kononenko) 通過銷售農場商品來解釋Web API (Web APIs explained by selling goods from your farm) If you have been to a farmer’s market or farm stand, then you can understand the concept of an application programmin…

python安裝pyqt4_windows下安裝PyQt4

第一步&#xff1a;確認自己電腦上的Python版本。然后下載對應的.whl文件下載第二步&#xff1a;https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyqt4上下載對應版本版本的.whl文件。例如cp-27-cp27m就代表是python2.7的版本。如果要下載python3.6且電腦是64位的則需要下載PyQt…

repcached配置與簡單測試

安裝libevent-devel進行configure。安裝在文件夾/usr/local/repcached下編譯安裝完畢啟動11211節點啟動11212節點編寫文件驗證復制&#xff08;分別向1、2節點存入數據&#xff0c;驗證復制&#xff09;ruby執行結果