[精讚] [會員登入]
437

【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

你可能感興趣的文章

【CoreProtect】[SpigotMC] (進階篇) 如何直接存取資料 大家好,這裡是準備要去參加FF38的小編過路君子 本來只要自己去,結果臨時有人說要一起去,那...好吧!走~ 對於一般人

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

【Python3】11 - 字典(Dictionary)的使用範例 python3的幾個字典使用範例,改寫自他人perl的範例

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

【教程】[HTML](進階版)如何在手機上編輯電子書(epub)預覽介面 可能會有人認為電子書(epub)只能用電腦來開啟、編輯,其實不是的,手機也可以編輯喔!

【Socket】(Linux / Python 3)兩不同系統的主機之間如何使用Socket相互溝通 How to connect two different computer use Socket

我有話要說

>>

限制:留言最高字數1000字。 限制:未登入訪客,每則留言間隔需超過10分鐘,每日最多5則留言。

訪客留言

[無留言]

隨機好文

[活動] 2017年4/1雲空幻想愚人節活動彩蛋&攻略 (紀念性質) 雲空幻想2017年的愚人節活動介紹同時也是本小編的第一篇網路文章(*^ω^)♪

【開箱】高捷少女collection總集篇1 由希萌創意寄來的大包裹!裡面究竟有什麼呢?小編就帶大家來看看!

高捷少女:布拉格體驗㊤ 「可……可以去歐洲玩?而且還有人出錢?太棒囉!」婕兒忍不住歡呼起來,把扳手拋呀拋的,旁邊的客人紛紛轉過來看。「好了啦!」耐耐忍不住害羞起來,輕輕敲了一下婕兒的頭

高捷少女:地下城的探險少女④ 耐耐突然抖了一下。「妳們聽到了嗎?」她說。「聽到什麼?」婕兒問。「那個腳步聲啊!」耐耐嚥了一下喉嚨,覺得有些害怕。「有一陣腳步聲經過,很小聲,但我還是聽到了。』「妳聽錯了吧……等等!」婕兒使終維持著將

高捷少女:美麗島的守護者③ 小雅閉上眼睛,思索在高捷發生的點點滴滴。她心意已決,在高捷的日子的確也有快樂的部分,不過她相信換個方向是更好的決定。有關高捷的所有美好回憶,小雅決定保留在心裡就好,繼續在高捷工作只會讓自己更痛苦而已,