[精讚] [會員登入]
704

【Python3】[Django] (Windows / Liunx) 如何從零開始創建一個網站

除了最基本的運作以外,還小小的加上了如何自導向特定目錄。

分享此文連結 //n.sfs.tw/15502

分享連結 【Python3】[Django] (Windows / Liunx) 如何從零開始創建一個網站@小編過路君子
(文章歡迎轉載,務必尊重版權註明連結來源)
2021-11-25 01:22:21 最後編修
2021-11-24 14:27:25 By 過路君子
 

大家好,這裡是最近發布筆記特別多的小編過路君子

因為同時在進行的東西太多了,不寫下來怕又要花好幾個小時研究、查詢

 

 

關於參考的資料小編丟在最下面的後記裡面了,有興趣的可以自行前往頁面查看。

對於其設定小編都有做略微的改動融合,但是主幹大致上相同,可以相互對照學習。

因為 WIndows和 Linux的運行環境差異,所以如果指令有分歧會明確標出,如果沒有標示,則指令相同

 

首先當然是要先下載 Django這個套件啦。

 

簡單的下道指令來安裝吧。

順帶一提,Windows部分全程都只會用 PowerShell來運行,以方便跟 Linux做對照,小編先在這裡跟不熟悉 DOS環境的人說一聲不好意思。

Linux pip install Django
Windows python -m pip install Django

(所有圖片點擊都可以放大、變高清)

 

然後簡單的創建一個新的資料夾來放置我們所有網頁工程的文件,創建之後順便切換進去吧。

Linux mkdir webpage && cd ./webpage
Windows md webpage
    cd .\webpage\

 

接下來這一個步驟對 Windows使用者極度不友善,但是沒辦法,如果你是使用 Windows的話,記得先找到 django-admin.py這個檔案在哪裡,下面的指令會用到。

如果各位安裝 Python3的時候沒有調整任何的設定,那這個檔案預設位置在 C:\Users\<user>\AppData\Local\Programs\Python\Python310\Lib\site-packages\django\bin這個資料夾裡面。

如果各位裝的 Python版本為 3.9,資料夾就叫 Python39;3.8就是 Python38......以此類推,對了,紅色的<user>部分記得更改。

指令最後的 ./(或.\) 別漏掉了,漏掉的話就會多一層資料夾,這不是我們想要的結果。

Linux django-admin startproject config ./
Windows C:\Users\<user>\AppData\Local\Programs\Python\Python310\Lib\site-packages\django\bin\django-admin.py startproject config .\

 

原本我們的資料夾是空的,現在則多了一個資料夾和一個 Python檔案,這兩個都是非常重要的,我們等等要對他們動刀。

那在我們開始動刀前,我們還要先創建一個資料夾,而這個資料夾就是用來控管我們等等的網頁。

Linux python3 manage.py startapp pages
Windows python manage.py startapp pages

 

那麼我們一切的準備就此結束,接下來就是修改文件、網頁配置的部分了。

這部份兩個系統的操作都一樣,小編接下來截圖以 Linux為主,Windows...打開文字編輯軟體就好了。

首先,打開位於 config這個資料夾裡面的 settings.py,如下圖那樣添加 'pages' 訊息,這部分無添加的話,啟動時會無法抓到我們新增的 pages資料夾。

 

接著一樣打開位於 config這個資料夾裡面的 urls.py,在開頭添加下面兩行。

from django.urls import path, include
from django.views.generic import RedirectView

開頭添加完之後,現在我們要在 urlpatterns這個陣列裡面添加以下兩行:

    path('', include('pages.urls')),
    path('', RedirectView.as_view(url='/index/'))

 

好了,config資料夾的設置就此結束,接下來我們要開始設置 pages資料夾了。

那在開始前我們必須在 pages資料夾裡面新增一個 urls.py檔案,這樣等等才能正確導向我們的首頁。

Windows在打指令的時候連續按兩次空格就可以了。

Linux touch pages/urls.py
Windows echo > pages\urls.py

 

因為剛剛創建出來的嘛,一定是一個空文件,所以我們把底下的內容全部貼進去。

# pages/urls.py

from django.urls import path


from .views import HomePageView

urlpatterns = [
    path('index/', HomePageView.as_view(), name='index'),
]

 

貼好之後儲存離開,接下來打開 pages/view.py,正常來說,應該只會看到兩行字,而我們只要將下面的文字直接貼入到文件的最底下就好:

from django.views.generic import TemplateView

class HomePageView(TemplateView):
    template_name = 'index.html'

 

然後在 pages資料夾下面再創建一個名為 templates的資料夾,同時將我們的首頁 index.html給創建出來。

Linux mkdir pages/templates && touch pages/templates/index.html
Windows md pages\templates
    echo > pages\templates\index.html

 

接著打開我們剛剛創建的 index.html檔案,將底下的文字全部貼進去就可以了。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Index</title>
</head>

<body>
    <h1>Hello World!</h1>
</body>
</html>

 

至此,我們的準備工作就此結束,接下來就只剩下收尾的工作了,最後兩個指令了!各位撐住!

Linux python3 manage.py migrate
Windows python manage.py migrate

 

最後一行,也就是萬眾期待的啟動我們的網頁服務啦!要啟動也非常簡單,只要輸入以下的指令:

Linux python3 manage.py runserver
Windows python manage.py runserver

 

然後打開我們瀏覽器,輸入 http://127.0.0.1:8000/ 或是直接點擊右邊的連結就可以連線進去並看到我們的網頁囉!

有沒有發現我們的首頁是在index/下,沒錯,在我們剛剛的設置中就有順便將首頁自動導向 index資料夾裡面,否則使用者連線進來只能看到一團亂碼,要「手動」在網址後面添加index/才能看到我們的網頁

這樣是不是很不人性化?所以我們簡化了這個流程,讓程式自動跳轉,免去使用者手動跳轉的時間。

那接下來各位就可以打開剛剛我們創建的 index.html開始添加一些有的沒的了,專屬於各位自己的網站就此誕生!

 

 

附錄

一個好用的小功能方便架設對外網站

如何綁定 Public IP 和 Port

首先,我們打開 config/setting.py,找到 ALLOWED_HOSTS這一個陣列,將要綁定的 IP填寫進去,這邊以 8.8.8.8來做示範,順手將上方的 DEBUG改成 False吧。

如果 DEBUG未改成 False會方便其他人找到我們網站的漏洞並進行攻擊,所以如果網站要對外公開一定要將這行改成 False。

然後用一樣方法啟動我們的網頁伺服器,但是這一次後面要再多一個 IP:Port的參數喔!

Linux python3 manage.py runserver 8.8.8.8:8000
Windows python manage.py runserver 8.8.8.8:8000

想當然爾,小編是沒有辦法成功啟動 Django來聆聽這個 Port啦,所以就沒辦法截圖示範了,總之,就是輸入你設定的那個網址和端口來進行連線。

 

 

 

後記

小編目前在研究一些怪怪的東西,也不知道這個套件能不能幫上小編的忙,總之花了時間下去研究了一下,就記錄一下基本的啟動方式,這樣以後回頭的時候就輕鬆了。

小編這篇文章參考了以下兩個網站,算是把這兩個網站講的內容組合在了一起,有興趣的人可以相互對照來學習。

  1. https://learndjango.com/tutorials/hello-world-5-different-ways
  2. https://developer.mozilla.org/en-US/docs/Learn/Server-side/Django/skeleton_website
END

你可能感興趣的文章

【JDA/discord bot】package does not exist fix JDA 4.0 和 5.0 差別還是很大的

【NodeMCU / ESP8266】[Arduino]測量溫溼度並上傳至ThinkSpeak 使用簡單的溫度計來測量溫濕度並上傳至第三方網站,這樣他人只要有瀏覽器就能看到我們的數據了

【Wickct】(縮短網址) 如何將網頁掛載到特定路徑下 Wildfly的預設網址又臭又長又不好記,而且會被看到後端的目錄路徑安排,當然能藏就盡量藏起來啦

【Maven】如何開始撰寫 Minecraft PaperMC server插件 萬事起頭難,要開始寫一個插件最難的一步就是要怎麼開始寫

【C++】一些好用的C++小功能 —— 壹 不太重要,但是可以增加程式質量以及可以讓程式看起來好像很厲害

【Wicket】[Header]如何讀取來自客戶端地檔頭和傳送自訂擋頭至客戶端 當需要設定檔頭或是讀取來自客戶端的檔頭時,這些程式碼就很好用

隨機好文

高捷少女:小穹與果仁巧克力㊥ 艾咪臉上泛起笑容說:「妳知道嗎?就跟花語一樣,每一種巧克力也都有各自的涵義:薄荷巧克力代表初戀;卡通巧克力代表天真爛漫;而果仁巧克力代表的是窩心,還有想陪伴對方的心情,這在德國是女生之間在慶生時會彼此

高捷少女:購票大作戰① 「各位乘客,本班機即將降落,感謝各位乘客的搭乘……」隨著空中小姐的廣播音,那架飛機逐漸降落在地面,裡面的乘客們也紛紛開始整理自己的行李。 那個有著歐美人五官的少女抓緊包包,看著外面的小港機場,臉上緩緩

高捷少女:耐耐的新年驚喜① 耐耐拿出手機。「我回來囉。」她說。幾分鐘後,木門緩緩打開。當它完全開啟的那一刻,小穹手中的包包掉到地上;艾米揉揉雙眼,確定自己看見的景象;婕兒的三魂七魄飛到了九霄雲外。

【專輯介紹】蓮台野夜行 ~ Ghostly Field Club,れんだいのやこう 就讓我們隨著音樂跟著秘封俱樂部一起探詢那不可思議的未知和神秘,若處理不好,說不定會招來奇怪的靈呦(・ω<)☆

【英翻中歌詞】(二創歌)東方妖妖夢-人形裁判 ~玩弄人偶的少女 人形裁判 ~ 人の形弄びし少女 很久很久以前,在一個神奇的異地,住著一位少女,十分惹人憐愛 她的皮膚就像陶瓷一樣潔白,眼睛就像藍色寶珠般明亮