[精讚] [會員登入]
276

【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

你可能感興趣的文章

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

【Raspberry Pi/樹梅派】(gcc 10) 如何安裝 gcc & g++ 需要的時間非常久,不愧是gcc的編譯

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

【Wickct】如何製作一個簡單的動態響應頁面和傳遞參數至其他頁面 身為一個後端架構程式,這個功能當然是非常重要之一

【C++】如何解決TLE,換句話說便是加速cin, cout的執行速度 [ZERO JUDGE](UVa) a159: 11743 - Credit Check 題目練習和副程式練習

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

我有話要說

>>

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

訪客留言

[無留言]

隨機好文

高捷少女:地下城的探險少女③ 過了十分鐘後,前方的天花板滴下一滴水珠,發出「噠」一聲響亮地落在石地上,讓大家嚇一跳。     「什麼嘛,只是水珠而已。」艾米撫著胸口噓了一聲。     忽然間,耐耐的臉色發白起來。「各位,你們看

【歌評】蓮台野夜行 - 魔術師梅莉(魔術師メリー)  對於同一首歌每一個人都有不同的見解,看看別人對於這一首歌的看法,說不定就可以聽出這首歌想要表達的事情!

【國文】虬髯客傳 大綱② (無本文、無翻譯) (續上篇筆記) 上篇小編有說要單獨拉出來討論的是這四個成語,分別是: 顧盼暐如——目光流轉,神采

【中翻英歌詞】(二創歌)密匿的四個季節 Rap Battles (Gap Battles!) of Gensokyo. 幻想鄉饒舌(隙間!)大戰 Secret God, Okina Matara versus Youkai Sage, Yu

小穹‧動畫化‧體驗記② 「想不到真的有這麼一天!」婕兒高興地說:「我們要動畫化了耶!我覺得今天晚上我一定會睡不著。」 「就是說啊,如果這個消息傳了出去,粉絲們一定也會很高興的。」耐耐喝了一口湯。