2024 網頁x人因xDjango 實務課程 04 建立一個新的網頁

閱讀時間約 14 分鐘

前言

還記得那時候剛建立起一個自己的網頁,真的超興奮又超開心的,雖然只是一個簡單,沒有什麼內容的網頁,卻能讓自己開心一整天。我想這就是學習有興趣的東西,會產生的效果吧。

那麼廢話不多說,今天我們將學習到,建立一個新網頁的整個流程。

資料來源:DALL-E 生成

資料來源:DALL-E 生成


整理好你的思緒,深深吸口氣,讓我們在 2024 這嶄新的一年當中,開始新的學習之旅吧。


基本流程

如何建立一個新的網頁呢?其實我們在上個課程中就有教授到,一個網頁的流程。如果大家忘記的話,我來幫大家回顧一下:

回顧

raw-image

【User】

  • 輸入 網址 想要瀏覽貼文

【Urls】

  • 收到 User網址
  • 找到在 Views 當中 這個網址相對應的方法
  • Views 呼叫 這個方法

【Views】

  • 啟用 這個方法
  • 準備 使用者名稱 的資料
  • Models 請求 使用者名稱

【Modles】

  • 收到 Views使用者名稱 的請求
  • 找到相對應的 使用者名稱
  • 回傳 使用者名稱Views

【Views】

  • 收到 Models 回傳的 使用者名稱
  • 處理這個 使用者名稱
  • 接著,準備 貼文內容
  • Models 請求 貼文內容

【Models】

  • 收到 Views貼文內容 的請求
  • 找到相對應的 貼文內容
  • 回傳 貼文內容Views

【Views】

  • 收到 Models 回傳的 貼文內容
  • 處理這個 貼文內容
  • Templates 請求 貼文的網頁模板

【Templates】

  • 收到了 Views貼文的網頁模板 的請求
  • 找到 貼文的網頁模板
  • 回傳 貼文的網頁模板Views

【Views】

  • 收到了 Templates 回傳的 貼文的網頁模板
  • 使用者名稱貼文內容 塞進去這個 貼文的網頁模板
  • 準備好了 完整的貼文網頁
  • 將這個 完整的貼文網頁 回傳給 User

【User】

  • 看見 完整的貼文網頁


總結

簡要來說的話,我們總共需要設置三個東西,分別是:

Templates : 設置網頁
Views : 設置相對應的方法
Urls : 設置相對應的網址


接下來,就讓我們開始實際的操作流程吧。


設置 Templates 網頁

打開 Templates 資料夾

首先讓我們找到 Templates 這個資料夾。

raw-image


新增一個網頁

點擊 像是紙張的按鈕,新增檔案,並取名為 index.html

raw-image


打上內容

接著打開這個 index.html 的檔案。

raw-image


打開後,輸入一個驚嘆號,就會跑出這個選項:

raw-image


請點擊第一個,也就是只有一個驚嘆號的選項,他將為你創建一個空白的 html 模板,像是這樣:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>

</body>
</html>


此時,請在 <body></body> 之間,打上一串 <h1>{{name}}</h1>。像是這樣:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>
{{name}}
</h1>
</body>
</html>

這一串 {{name}} 是為了讓這個網頁,可以取得 Views 中的 name,然後顯示在網頁上。至於為什麼要這樣,我們將在等等的 Views 設置當中介紹,大家可以不用著急去懂。


那至此,我們就成功建立好一個網頁了。



設置 Views 方法

接著我們要寫一個 Views 的方法,去讓 Views 可以將相對應的網頁回傳給使用者。


打開 Views.py

首先讓我們打開 Views.py

raw-image


方法格式

def [方法名](request):

## 範例
def Index(request):


新增一個方法

由於我們要建立一個,專門回傳 Index.html 的網頁,因此我們的方法名取名為 Index ,那讓我們直接建立吧。

from django.shortcuts import render

# Create your views here.
def Index(request):


準備好 name 這個參數

接著呢,讓我們在這個方法裡面,開始撰寫程式碼吧!由於剛剛我們在 Index.html 當中,有寫一串字 {{name}} ,這個是到時候在回傳之前,要讓我們將 name 這個參數準備好,要塞進去網頁用的。因此現在,就讓我們來準備這個參數吧。


from django.shortcuts import render

# Create your views here.
def Index(request):
context = {
'name' : "Ting",
}

首先,context 這個東西,蒐集了等等我們要給網頁的所有東西,裡面會很清楚的定義,要傳的是什麼,而內容又是什麼。

大家可以發現, context 裡面的內容,是由左邊一串字,右邊一串字組成。以裡面唯一的一個東西為例,左邊的 name 代表了 這個參數的名稱。而右邊的 Ting ,則是代表了 這個參數的值


所以格式是這樣子的:

context = {
'[參數名稱]' : "[參數的值]",
}


假設我想新增大量的參數,可以像這樣:

context = {
'name' : "Ting",
'age' : "20",
'sexual' : "boy",
}

如果這邊還沒搞懂的話沒關係,我將在後續課程補上更詳細的內容,這邊只是想帶大家了解新增一個網頁的過程,並結合先前介紹的前後端概念而已。


回傳

接著,我們準備好參數後,就準備要寫一串專門回傳給使用者的程式碼。

from django.shortcuts import render

# Create your views here.
def Index(request):
context = {
'name' : "Ting",
}

return render(request, 'Index.html', context)


這個 renderdjango 內建的一個方法,用於讓我們回傳給使用者的一個方法。裡面會包含三種參數:

  1. request:這個 request 的名稱,必須與 def Index(request) 小括弧中的 request 相符合。
  2. html:這邊是放置,你希望回傳給使用者的網頁。以這邊為例,則是放置了首頁的網頁,也就是 Index.html
  3. context:這邊則是放置,你要準備給網頁的所有參數。請注意, context 這個名稱,必須與上面的 context 名稱相符合才行。


因此,根據我們的需求,就會長成這樣:

  1. request : 這邊與上面的方法一樣寫 request 不會變。
  2. html : 由於我們要回傳的是首頁,所以這邊要寫 Index.html
  3. context:由於我們準備的參數的集合就叫做 context ,所以這邊寫 context 不用變。


至此,我們的方法也寫好了。



設置 Urls 網址

打開 Urls.py 檔案

首先讓我們找到 Urls.py 這個檔案,並且打開它。

raw-image


網址格式

那大家可以看到一串叫做 urlpatterns 的部分,而這個就是用來設置我們所有的網址。大家可以發現,他裡面已經有一個網址了,長這樣:

urlpatterns = [
path('admin/', admin.site.urls),
]


沒錯,這個網址就是我們前幾次課程中用來,進入管理頁面的網址 http://127.0.0.1:8000/admin/


那大家可以仔細觀察一下這個網址的格式,格式就如下:

path('[你想要取的網址]/', [指定的 Views].[要向 views 呼叫的方法], name = "[想要為這個網址,取得簡短名稱]"),


因此,我們如果想寫一個回傳首頁的網址,就可以寫成這樣:

path('Index/', post_views.Index, name = 'Index'),

在這裡,我把網址取作 Index ,接著從 post_views 中使用 Index 這個方法做回傳,最後將這個網址簡稱為 Index


但在把這串寫到 urlpatterns 之前,我們可別忘了把 Views 給引用進來。

大家還記得嗎,views.py 是在 我們創建的新的 app 底下的,所以其實每個 app 都有相對應的 views


因此,如果我們要使用不同 appviews.py 時,都要特別去引用起來。像是這樣:

## 格式
from [app 名稱] import views as [你想取的名稱]

## 範例
from post import views as post_views

這邊建議 as 後面的名稱,盡量取 [app名稱]_views ,這樣才能更好的分辨,哪個 views 是給哪個 app 運作的。


接著,讓我們把這串加到程式碼裡:

from django.contrib import admin
from django.urls import path
## 引用 post 當中的 views
from post import views as psot_views

urlpatterns = [
path('admin/', admin.site.urls),
]


最後,便可將剛剛的網址,也加進去 urlpatterns 裡面。像這樣:

from django.contrib import admin
from django.urls import path
## 引用 post 當中的 views
from post import views as psot_views

urlpatterns = [
path('admin/', admin.site.urls),
path('Index'/, post_views.Index, name = 'Index'),
]

測試

輸入指令

接著讓我們輸入這串指令,執行 Django 程式。

PS E:......>Python manage.py runserver


輸入網址

然後,我們便能在瀏覽器中,輸入這個網址 http://127.0.0.1:8000/Index/ 來檢查是否真的有成功設置好。


最終結果

raw-image

大家可以發現,剛剛設置的 'name' : 'Ting' ,真的有將 Ting 這個文字傳給網頁上。最後,讓我們來回顧一下之前學的概念,以結合這次的實際流程操作。


最終回顧

MTV 回顧

這次我將以,我們剛剛實際建立的 首頁 作為流程範例,詳細解釋剛剛的整個流程。

raw-image

【User】

  • 輸入 http://127.0.0.1:8000/Index/ 想要瀏覽貼文

【Urls】

  • 收到 Userhttp://127.0.0.1:8000/Index/
  • 透過 path('Index'/, post_views.Index, name = 'Index'), 使用在 post_views 當中的方法 Index
  • post_views 呼叫 Index

【Views】

  • 啟用 Index
  • 準備 Context'name' : 'ting' 的資料
  • Templates 請求 Index.html

【Templates】

  • 收到了 ViewsIndex.html 的請求
  • 找到 Index.html
  • 回傳 Index.htmlpost_views 的方法 Index

【Views】

  • 收到了 Templates 回傳的 Index.html
  • 'name' : 'Ting' 塞進去 Index.html
  • 準備好了 包含 Ting 的 Index.html
  • 將這個 完整的Index.html 回傳給 User

【User】

  • 看見 完整的Index.html


結論

當我們想創建一個新的網頁的時候,大略上需要做到以下步驟:

  1. 創建一個 html 網頁。
  2. 在 Views 當中,寫一個方法,可以呼叫這個網頁並回傳
  3. 在 Urls 當中,設置好網址,並決定會呼叫哪一個方法

這樣子,便能創建一個新的網頁了。


結語

感謝你看到這邊,把這些內容持之以恆地讀完肯定不容易,你辛苦啦!

今天我們學到了創建一個新的網址的整個流程,也學習了各個流程中的程式碼撰寫格式,最後也成功測試,看見這個網頁了。

接下來,我們將介紹更多 html 的寫法,讓大家可以有能力去撰寫網頁。




avatar-img
12會員
18內容數
這裡是來自 高科大 資管系二年級的學生,希望能在學習的過程中,也分享這些知識給大家。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
咖啡因學習教室 的其他內容
本文介紹了 Django 專案中各個檔案的用途,包括 settings.py、tests.py、models.py 等。並且解釋了 MTV 架構的後端運作流程,以及相對應的範例介紹。閱讀本文可幫助讀者更好地瞭解 Django 後端開發。
當我剛開始接觸這個領域的時候,經常會看到有人在討論: 到底要做前端還是後端工程師呢?後端工程師賺的比前端工程師多?前端工程師轉後端工程師?那前端與後端到底是什麼呢? 這篇文章提供了前端與後端的基本概念並舉例來說明。同時也介紹了前端的三大要素以及後端的運作原理,對於想深入瞭解前後端的讀者會非常有幫助。
本文將介紹如何從頭開始建立一個Django專案,包括安裝和設定,以及創建管理員帳戶和新的app。透過本文,你可以學習到建立自己的網頁的所有步驟和設定。
本篇文章探討了2024年的網頁製作工具和程式語言,以及如何透過這些工具來建立各種功能豐富的網頁。文章還介紹了IDE、Python和Chrome的安裝步驟,為讀者準備軟體。下一篇的主題將是介紹VS code的介面,讓讀者學會如何去操作並寫程式。
本文介紹了 Django 專案中各個檔案的用途,包括 settings.py、tests.py、models.py 等。並且解釋了 MTV 架構的後端運作流程,以及相對應的範例介紹。閱讀本文可幫助讀者更好地瞭解 Django 後端開發。
當我剛開始接觸這個領域的時候,經常會看到有人在討論: 到底要做前端還是後端工程師呢?後端工程師賺的比前端工程師多?前端工程師轉後端工程師?那前端與後端到底是什麼呢? 這篇文章提供了前端與後端的基本概念並舉例來說明。同時也介紹了前端的三大要素以及後端的運作原理,對於想深入瞭解前後端的讀者會非常有幫助。
本文將介紹如何從頭開始建立一個Django專案,包括安裝和設定,以及創建管理員帳戶和新的app。透過本文,你可以學習到建立自己的網頁的所有步驟和設定。
本篇文章探討了2024年的網頁製作工具和程式語言,以及如何透過這些工具來建立各種功能豐富的網頁。文章還介紹了IDE、Python和Chrome的安裝步驟,為讀者準備軟體。下一篇的主題將是介紹VS code的介面,讓讀者學會如何去操作並寫程式。
你可能也想看
Google News 追蹤
Thumbnail
徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
架設第一個網站是一個令人興奮且具有挑戰性的過程。這篇文章將詳細介紹如何從零開始,逐步完成一個基本的網站,並且涵蓋所需的主要步驟。 1. 計劃與構思 在開始技術工作之前,首先要明確網站的目的和目標受眾。問問自己以下問題: 這個網站的主要目的是什么?(例如,博客、電子商務、個人作品集等) 目標受
Thumbnail
這篇文章教你如何製作側邊欄,包括準備工作、HTML和CSS的部分,還有一些互動效果。文章涵蓋了連結、圖片、超連結、大小、顏色、排版、flex和滑鼠互動等內容。
Thumbnail
你好,在下最近在學習開發web,學了html css js,也得出一些心得,由於網路上已有許多教學,所以我會著重在如何開發出to do List,以及解釋我寫的程式碼。相關的教學我會直接貼網址。如果我有什麼地方出錯,或者是可以寫得更好,歡迎在下方留言,討論。 首先先介紹我的開發環境: 我用了vs
Thumbnail
這幾天我一直沒有發布新文章,是因為我一直在研究電子報訂閱的事情。其實架設一個網站不難! 佈置好首頁的版面也不難! 對我來說反而是[電子報訂閱]難倒我了。 光是找一個外掛看人家推薦一堆電子報程式,我光選就消耗掉我2天時間了! 總算選好要使用的程式下在完畢,才是接下來困難的地方。 我好死不死選到了
優秀的網站架構不僅關係到使用者的操作體驗,同時也能幫你進行搜尋引擎優化(SEO)強化。不過,可能許多人在網站架設的初期規劃階段就感到迷茫了。不用擔心,我們為你提供了完整的網站建設指南!從網站流程圖規劃階段開始,帶你選擇適合的網站架構工具,一起了解網站設計的每個環節!
Thumbnail
建立自己的網站需要考慮許多因素,包括網站類型、架站軟體的選擇、素材的準備、網域名稱的購買、主機空間的租用、網站設計的進行以及網站被收錄的步驟。透過這些步驟,你可以自己建立一個符合需求的網站,展示你的企業形象、進行電子商務或建立社交媒體平臺等。
Thumbnail
網站設計怎麼做?你會嗎?直接教你把握關鍵重點!從基礎網站設計方法開始,4 步學規劃網站佈局、網站設計必備要素、做好互動與動畫效果,直接用工具來打造精美又吸引人的網站設計,留住客戶其實很簡單!快跟我們一起掌握網站設計技巧,提升顧客轉化率!
Thumbnail
對於網頁製作新手來說,自己架設網站絕對是可行的。現代的網頁製作工具和平台設計得十分用戶友好,即使沒有網頁開發背景,也能輕鬆上手。在選擇網頁製作平台時,需要注意以下幾點: 操作介面:選擇一個操作界面清晰直觀的平台,這有助於您更容易地設計網站和探索各種功能。 功能齊全:確保平台提供您所需的所有功能...
Thumbnail
在現代社會中,網站已成為了一個不可或缺的工具。無論是個人、企業還是組織,都可以通過擁有一個網站來展示自己、宣傳產品或服務,甚至進行電子商務交易。然而,對於許多人來說,製作一個網站可能聽起來很複雜且困難。在本文中,我將向您介紹如何製作一個網站,並提供一些有用的技巧和工具,讓您可以輕鬆地開始建立自己的網
Thumbnail
在當今數位化時代,網頁設計已成為商業和個人表達的重要途徑。無論是企業建立品牌形象,還是個人展示創意作品,一個具有吸引力且功能全面的網站都是不可或缺的。網頁設計不僅涉及美學布局,更包含了使用者體驗(UX)、使用者介面(UI)和技術實現等多方面的考量。隨著技術的進步和網頁設計理念的不斷演進,網頁設計已經
Thumbnail
徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
架設第一個網站是一個令人興奮且具有挑戰性的過程。這篇文章將詳細介紹如何從零開始,逐步完成一個基本的網站,並且涵蓋所需的主要步驟。 1. 計劃與構思 在開始技術工作之前,首先要明確網站的目的和目標受眾。問問自己以下問題: 這個網站的主要目的是什么?(例如,博客、電子商務、個人作品集等) 目標受
Thumbnail
這篇文章教你如何製作側邊欄,包括準備工作、HTML和CSS的部分,還有一些互動效果。文章涵蓋了連結、圖片、超連結、大小、顏色、排版、flex和滑鼠互動等內容。
Thumbnail
你好,在下最近在學習開發web,學了html css js,也得出一些心得,由於網路上已有許多教學,所以我會著重在如何開發出to do List,以及解釋我寫的程式碼。相關的教學我會直接貼網址。如果我有什麼地方出錯,或者是可以寫得更好,歡迎在下方留言,討論。 首先先介紹我的開發環境: 我用了vs
Thumbnail
這幾天我一直沒有發布新文章,是因為我一直在研究電子報訂閱的事情。其實架設一個網站不難! 佈置好首頁的版面也不難! 對我來說反而是[電子報訂閱]難倒我了。 光是找一個外掛看人家推薦一堆電子報程式,我光選就消耗掉我2天時間了! 總算選好要使用的程式下在完畢,才是接下來困難的地方。 我好死不死選到了
優秀的網站架構不僅關係到使用者的操作體驗,同時也能幫你進行搜尋引擎優化(SEO)強化。不過,可能許多人在網站架設的初期規劃階段就感到迷茫了。不用擔心,我們為你提供了完整的網站建設指南!從網站流程圖規劃階段開始,帶你選擇適合的網站架構工具,一起了解網站設計的每個環節!
Thumbnail
建立自己的網站需要考慮許多因素,包括網站類型、架站軟體的選擇、素材的準備、網域名稱的購買、主機空間的租用、網站設計的進行以及網站被收錄的步驟。透過這些步驟,你可以自己建立一個符合需求的網站,展示你的企業形象、進行電子商務或建立社交媒體平臺等。
Thumbnail
網站設計怎麼做?你會嗎?直接教你把握關鍵重點!從基礎網站設計方法開始,4 步學規劃網站佈局、網站設計必備要素、做好互動與動畫效果,直接用工具來打造精美又吸引人的網站設計,留住客戶其實很簡單!快跟我們一起掌握網站設計技巧,提升顧客轉化率!
Thumbnail
對於網頁製作新手來說,自己架設網站絕對是可行的。現代的網頁製作工具和平台設計得十分用戶友好,即使沒有網頁開發背景,也能輕鬆上手。在選擇網頁製作平台時,需要注意以下幾點: 操作介面:選擇一個操作界面清晰直觀的平台,這有助於您更容易地設計網站和探索各種功能。 功能齊全:確保平台提供您所需的所有功能...
Thumbnail
在現代社會中,網站已成為了一個不可或缺的工具。無論是個人、企業還是組織,都可以通過擁有一個網站來展示自己、宣傳產品或服務,甚至進行電子商務交易。然而,對於許多人來說,製作一個網站可能聽起來很複雜且困難。在本文中,我將向您介紹如何製作一個網站,並提供一些有用的技巧和工具,讓您可以輕鬆地開始建立自己的網
Thumbnail
在當今數位化時代,網頁設計已成為商業和個人表達的重要途徑。無論是企業建立品牌形象,還是個人展示創意作品,一個具有吸引力且功能全面的網站都是不可或缺的。網頁設計不僅涉及美學布局,更包含了使用者體驗(UX)、使用者介面(UI)和技術實現等多方面的考量。隨著技術的進步和網頁設計理念的不斷演進,網頁設計已經