Django 18 4建立其他網頁

2021-09-01 12:52:05 字數 3127 閱讀 7200

在index.html的目錄中建立乙個名為base.html的父模板,讓每個網頁都繼承這個模板,而不必在沒有網頁中都重複修改這些通用元素。目前每個網頁中都只有頂端的標題。

base.html

learning log

現在重新編寫index.html,使其繼承base.html

index.html

learning log

learning logs helps you keep trace of your learning,just keep doing it!

我們首先定義顯示所有主題頁面的url:http://localhost:8000/topics/將返回顯示所有主題的頁面。

urls.py

'''define the url pattern of learning_logs'''

from django.conf.urls import url

from . import views

urlpatterns = [

#homepage

url(r'^$',views.index,name='index'),

#show all topics

url(r'^topics/$',views.topics,name='topics'),

]

(#show all topics)url的匹配模式:基礎的url後面跟著topics,可以在末尾新增斜槓,也可以忽略,否則不匹配,匹配之後將會交給views.py中的函式topics()進行處理。

views.py

from django.shortcuts import render

from .models import topic

# create your views here.

def index(request):

--snip--

def topics(request): #django從伺服器那裡收到request物件

#show all the topics

#查詢資料庫,請求提供topic物件,並且按照屬性的date_added對他們排序,返回結果儲存在topics

topics = topic.objects.order_by('date_added')

context = #定義乙個發給模板的上下文(字典)

return render(request,'learning_logs/topics.html',context)

顯示所有主題的頁面接受字典context,以便能夠使用topics()提供的資料。建立乙個檔案topics.html,儲存到index.html的目錄下。

topics.html

topics

topics

當我們想要檢視主題為chess的詳細頁面時,url將為http://localhost:8000/topics/1/,所以我們要設定和它匹配的url模式。

learning_logs/urls.py

'''define the url pattern of learning_logs'''

from django.conf.urls import url

from . import views

urlpatterns = [

#homepage

url(r'^$',views.index,name='index'),

#show all topics

url(r'^topics/$',views.topics,name='topics'),

#show more specific content of the page

url(r'^topics/(?p\d+)/$', views.topic, name ='topic'),

]

表示式/(?p\d+)/與包含在兩個斜桿內的任何數字匹配,?p將匹配的值儲存到topic_id中。

當url模式與其匹配時,django將呼叫檢視函式topic(),並將儲存在topic_id的值作為實參傳遞給它。

函式topic()需要從資料庫獲取指定的主題以及與之相關聯的所有條目。

views.py

from django.shortcuts import render

from .models import topic

# create your views here.

def index(request):

--snip--

def topics(request):

--snip--

def topic(request,topic_id):

#show single theme and it's all entries

#使用get()獲取指定的主題

topic = topic.objects.get(id = topic_id)

#獲取主題相關的條目

entries = topic.entry_set.order_by('-date_added')

#按date_added排序,前面的-指定按降序排序

context =

return render(request,'learning_logs/topic.html',context)

顯示主題的名稱和條目的內容;如果不包含任何條目,還需指出。

topic::}

entries:

--snip--

}--snip--

我們使用模板標籤url根據learning_logs中名為topic的url模式來生成合適的鏈結。這個url模式要求提供實參topic.id。

Django 建立專案

c python27 scripts python django admin.py startproject sit c python27 scripts dir 驅動器 d 中的卷是 程式 卷的序列號是 6e32 1e04 c python27 scripts 的目錄 2011 04 13 11 ...

建立Django專案

3,安裝django pip install django 1.11.2 pip解除安裝 pip uninstall django 4,驗證是否安裝成功 python c import django print django.get version 5,建立乙個資料夾來放置django專案 在此資料...

建立Django專案

1.首先,win r鍵開啟執行,輸入cmd開啟控制台,進入將要建立專案的目錄,如下圖所示 2.輸入如下命令建立django 專案 具體如下圖所示 3.檢視所在路徑,即可看到建立好的django專案,目錄結構如下圖所示 目錄說明 4.接下來我們進入 helloworld 目錄輸入以下命令,啟動伺服器 ...