Django 開發學習筆記(7)- 開發特定主題顯示的頁面
阿新 • • 發佈:2019-01-03
這一節其實沒有什麼新的知識,我們只是把開發頁面的一般流程再和大家重複一下。
1、在 learning_logs 模組配置 urls
2、編寫 views
3、編寫模板 topic.html
下面是具體編寫步驟:
1、在 learning_logs 模組配置 urls
url(r'^topic/(?P<topic_id>\d+)$',views.topic,name='topic')
2、編寫 views
def topic(request, topic_id):
"""顯示單個話題以及所有的條目"""
topic = Topic.objects.get(pk=topic_id)
# 還記得我們在 shell 那一節做的測試嗎? 這個 entry_set 其實是一個字串拼接
entries = topic.entry_set.order_by("-date_added")
context = {'topic': topic, "entries": entries}
return render(request, "blog/topic.html", context)
知識點:
entries = topic.entry_set.order_by("-date_added")
“-date_added” 表示按照 “date_added” 這個欄位降序排序。
3、編寫模板 topic.html
{% extends 'blog/base.html' %}
{% block content %}
當前顯示的話題: {{ topic }}
<ul>
{% for entry in entries %}
<li>
<p>新增日期:{{ entry.date_added | date:'M d,Y H:i' }}</p>
正文內容:<p>{{ entry.text | linebreaks }}</p>
<p>關鍵字:{{ entry.key_words }}</p>
</li >
{% empty %}
<li>在當前話題下還沒有部落格文章被建立。</li>
{% endfor %}
</ul>
{% endblock content %}
知識點:
1、格式化日期字串:新增日期:{{ entry.date_added | date:'M d,Y H:i' }}
2、{{ entry.text | linebreaks }}
最後,在顯示所有話題列表的頁面 topics.html ,新增到單個話題的連結。
{% extends 'blog/base.html' %}{% block content %}
<ul>
{% for topic in topics %}
<li>
<a href="{% url 'blog:topic' topic.id %}">{{ topic }}</a>
</li>
{% empty %}
<li>話題沒有被建立。</li>
{% endfor %}
</ul>
{% endblock content %}
知識點:這樣表示連結:{% url 'blog:topic' topic.id %}