}}
}}這裡的標籤告訴django去找乙個叫base.html的標籤,並將這個模板裡命名塊的所有內容填入到那個模板裡相應的塊裡去。
按日期排序
可以在model裡加入乙個預設的順序,或者在檢視**裡的blogpost.objects().all()上新增排序功能。如果在model裡設定我們想要的排序方式,django裡任何訪問資料的部分都會採用這個排序結果。
設定model預設排序的方法是給它設定乙個meta巢狀類。然後設定ordering屬性。
class meta:
ordering = ('-timestamp', ) #千萬不要忘了小括號結尾的那個逗號,它代表的是乙個單元素的元祖,而不是乙個帶小括號的字串。django在這裡要的是乙個元祖,你可以排序任意數目的變數。
現在看一下blog的首頁(/blog/)。最新的帖子應該出現在頁面最上方了。字串"-timestamp"告訴django對"timestamp"變數安裝降序排列。(如果省略"-"的話則是按公升序排列)
通過模板過濾器格式化時間戳。
開啟archive.html檔案並修改post.timestamp一行。
}也可以傳遞乙個strftime風格的格式化字串作為它的引數。
}注意不要在冒號兩邊留有空格--django的模板引擎對空格敏感。
第三章 起始
3.1 動態**基礎
使用者向web服務請求乙個文件;web伺服器隨即獲取或生成這個文件;伺服器再把結果返回給使用者的瀏覽器;最後瀏覽器將這個文件渲染出來。
通訊: http、url、請求、響應
http主要是由請求(request, 客戶端到伺服器端)和響應(response, 伺服器端到客戶端)兩個部分組成。請求封裝了過程的第一部分--客戶端向伺服器端要求乙個給定的文件。請求的核心就是url(指向所需文件的"路徑"),當然可以通過一系列方法進一步引數化,讓單個的位址或url展現多種行為。
響應主要是由乙個正文(body, 通常是web頁面的文字)和相應的包頭(header)組成。包頭裡是關於所需資料的額外資訊。另外,響應裡非html的內容可以是純文字、文件、聲音片段等。
django將請求和響應表示成相對簡單的python物件,用屬性來表示其資料,以及用方法來進行更複雜的操作。
資料儲存:sql和關聯式資料庫
django提供了乙個強大的orm機制,python的類就代表了表,物件代表了其中的每一行,而物件的屬性則代表了列。
表示:將模板渲染成html或其他格式
組合在一起
3.2 理解模型、檢視和模板
分層(mvc):應用程式被分割成模型(控制資料),檢視(定義顯示的方法),以及控制器(在兩者之間斡旋,並且讓使用者可以請求和運算元據)
django的辦法
首先模型部分保持不變:django的模型只負責把資料傳入傳出資料庫。django裡的檢視並不是顯示資料的最後一步--django的檢視其實更接近mvc裡傳統意義上的控制器。它們是用來將模型層和表示層連線在一起的python函式。
模型檢視:
它們是鏈結到乙個或多個定義url上的python函式。這些函式都返回乙個http響應物件。
模板3.3 django架構總覽
收到的http請求被web伺服器**給django,django在請求的中介軟體層接受它們。隨後根據urlconf模式匹配分配到是和的檢視上去,檢視會執行所需工作的核心部分,用模型(model)和/或模板(template)按需要生成響應。隨後響應再次穿過中介軟體層進行最後的處理,最後將http響應返回給web伺服器並**給使用者。
Django Web開發指南
國內第一本django圖書 django web開發指南 歡迎使用django 歡迎來到django的世界,很高興能和你一起進行這趟旅程。你會發現有了這個強大的web框架,做每件事情都變得便捷起來 從設計開發新應用到不用大刀闊斧地修改 就能為現有 提供新的特性和功能。關於本書 市面上已經有了一些講解...
Django Web開發指南筆記
抽象類不會生成資料表 被繼承的類 父類 就是一張資料表,其實就是在子類和父類之間設定了乙個onetoonefield。由於這種形式的繼承允許父類擁有自己的屬性,meta的繼承很可能導致兩端的衝突 父類的meta會被子類繼承 檢視 也叫控制器 時所有djangoweb應用程式的核心。在定義和使用模型的...
《Django Web 開發指南》第五章 讀書筆記
1,urls.py urlconf 檔案中必須暴露出乙個urlpatterns物件。2,urlpattern物件是由patterns方法返回的。3,patterns方法的引數中,配置url的正規表示式不必考慮 django會自動去掉 4,patterns方法中的引數可能通過url方法替換。5,可以通...