前言:
Django是一個框架,相較於其他的網頁全端MVC概念,Django基於MTV (Model / Template / Views)的架構。
先來看看Wiki上關於Django的定義
Django是一個開放原始碼的Web應用框架,由Python寫成。採用了MVT的軟體設計模式,即模型,視圖和模板。它在開發初期用於管理勞倫斯出版集團旗下的一些以新聞為主的網站。Django於2005年7月在BSD授權條款下釋出,它的名字來源於比利時的吉普賽爵士吉他手Django Reinhardt。
Cover & Photo Original by Faisal M on Unsplash
為什麼要用Django?
我自己的想法其實很簡單,Python也摸了一陣子,但總聽人家說,Google也是Python做出來的;Python可以用在Web APP開發,也就是做成網頁上的Service或是Application,因此怎能不來試試看,讓自己寫的Python跑在網路主機上、讓它可以把結果吐在網頁上。讓使用者可以隨時透過瀏覽器跟自己的Python程式互動,而不是自己跑在自己的主機、開著Anaconda 用終端機或Jypter Notebook 逐行單機跑程式。
另一方面,也是讓設計從前端到一直往後端去,讓自己的Idea能夠落地。
打GAME都想打線上遊戲了;寫程式豈不能寫到線上去嗎?
學習各種程式語言的新手任務一定是Hello World。當然DJANGO也不例外;這樣的文章,在Google上多如牛毛,學習是一定要練一下Hello World;但我想換個方式,一開始就在AWS上面練。直接先Depoly,直接把Hello World面向Internet ,也希望自己的學習,就是即戰力。而後面的實操練習,就能夠直接用更多例子在線上執行。
當然正確的作法是先在自己的本地的電腦上執行 runserver 指令,透過 http://127.0.0.1:8000/ 去直接做本地端的測試,一旦開發都完成以後,再找一個主機商把所有的開發結果在部屬在網站上面。
開了主機以後也會有花費,一方面也是強迫自己學習、另一方面是可以提早遇到部屬後的問題。
本系列文章架構如下 –
- A. 安裝Django
B. 創建專案 Startproject
C. 創建APP Startapp
D. 修改內容
E. 啟動服務
F. Apache 託管
G.完成
礙於篇幅以上ABC 將整為第一篇文章、DE為第二篇文章、FG為第三篇文章
實際操作:
這邊我們開始實際操作,首先我們本次實際操作選用的主機為AWS Lightsail,選用主機看自己方便即可,也可以使用其他慣用的主機 Bluehost 、GCP、Digital Oecan 等。
A. 安裝Django
a. 安裝Django方法1 使用AWS Lightsail – Django App stack
AWS Lightsail 有現成的 Django Stack,點選Create instance 創造新的網站
記得在下面的blueprint 選 Django APPs ,目前是3.1.0版本
往下捲動,資費方案最低每月5元起跳
改個名字
接著跑一會兒就完成了
接著我們馬上用 SSH 連 IP 進去看看,或直接用Web版的終端機連入
若不知道SSH連入主機的方法,可以參考此篇>>
Lightsail 已經把 Django所需要的安裝包事先預載完成。
事實上,若你現在把 ip 輸入到瀏覽器裡面,你會很驚訝地發現,原來Django服務已經在運行,你已經有了一個預設的Django網站了!!
b. 安裝Django方法2 直接透過pip 安裝Django
若使用其他沒有預先載入Django的主機則需要自己輸入在終端機上安裝pip套件,若你已經有裝過pip 下面指令請跳過。
sudo apt-get install python-pip
並利用pip套件來安裝Django,只需輸入兩個指令就輕鬆安裝完成囉!
pip install django
本文是針對安裝在網路主機,若你是安裝在本機,建議使用Anaconda來創建Django虛擬環境。
conda install django
B. 創建專案 Startproject
先打一個指令 django-admin 看看有什麼功能可用,若打了這行指令沒有跳出東西來,也代表你的django根本沒裝好喔。
接著我們要來創建專案,也就是在上圖裡面倒數第三個指令 startproject
django-admin startproject V1
很快地就完成了,打 ls 指令看一下檔案目錄
果然自己產生了一個V1的專案資料夾,目前檔案的資料夾結構如下,可以看到Django已經自動產生了一些東西。
V1/
├── manage.py
└──[V1]
├── __init__.py
├── settings.py
├── urls.py
└── wsgi.py
- V1\
__init__.py
:是空白檔案,用來辨識Python目錄。 - V1\
settings.py
:django專案設定都放這檔案。 - V1\
urls.py
:django專案用到的URL宣告。 - V1\
wsgi.py
:與WSGI相容的web server,例如設定讓Apache提供服務。 -
manage.py
:django專案的命令列工具。
C.創建APP Startapp
接著我們要來創建一個APP,就叫做SayHelloOnline 好了,先用 cd 指令切換進去專案資料夾 V1 接著輸入創建 app的指令
django-admin startapp SayHelloOnline
如上圖,果然已經自動幫你把資料夾都創好了,更重要的是,其實基本會用到的套件與文檔都幫你準備好了。
V1/
├── manage.py
├── [V1]
└── SayHelloOnline
├── admin.py
├── app.py
├── __init__.py
├── [migration]
├── settings.py
├── urls.py
└── wsgi.py
好了,我們已經完成第一階段的準備工作了。下一篇,我們將繼續修改專案檔案,並且試著讓它在Sever上運作起來,看到我們的Hello World 線上版。
小結:
若有在本機製作過Hello World的人,一定會發現,在線上直接發佈一個線上版的Hello World 專案,並非那麼簡單,在部署到網路主機,需要設定本較多的東西,對於Apache運作也需要熟悉。
所以本文先了解專案準備工作,也是非常重要的事情。
本文待續>>
這邊先複習一下本文用到的指令
指令 | 說明 |
---|---|
django-admin.py startproject <project_name> | 建立 Django 專案 |
python manage.py startapp <app_name> | 新增 Django app |
python manage.py runserver | 啟動開發伺服器 |
python manage.py -h <command_name> | 查看 Django commands 的使用方法 |