顯示所有主題的頁面
1.定義URL模式
2.定義視圖
函數topics()需要從數據庫中獲取一些數據,並將其發送給模板
1處導入與所需數據相關聯的模型
2處表示Django從服務器收到的request對象
3處查詢數據庫 -- 請求提供Topic對象,並按屬性date_added對它們進行排序,並將查詢集存儲在topics中
4處定義了一個將要發送給模板的上下文
5處根據視圖提供的數據渲染響應
3.創建模板topics.html
該網頁的主題是一個項目列表,其中列出了用戶輸入的主題。在HTML中,項目列表被稱爲無序列表,用標籤<ul></ul>表示
{% for %} {% endfor %}相當於for循環的模板標籤
<li></li>之間的內容都是一個項目列表項
{% empty %}告訴Django在列表topics爲空時該怎麼辦
<a href="{% url 'web_app:topic' topic.id %}">{{ topic }}</a> 表示將每個主題都鏈接到相應的網頁
4.在base.html中的主頁鏈接後面添加一個連字符,然後添加一個顯示所有主題的頁面的鏈接
5.顯示特定主題的頁面
1>定義URL模式
2>編寫視圖函數topic()
1處的topic接受正則表達式(?P<topic_id>\d+)捕獲的值
2處使用get()來獲取指定的主題
3處獲取與主題相關的條目,並將它們按時間降序排列
4處將主題和條目都存儲在字典context中
5處表示將字典context發送給模板topic.html
3>創建模板