本篇是參考:
首先,要學習django前,要先部署環境,而部署環境的方式,google大神有很多教導安裝django的環境(請自行google)
學習本專案建議先有基礎的python概念,基礎的terminal操作(基礎就可以了)
本練習為了方便,統一用python ~做指令操作,若是你的python版本為3以上,請用
python3 ~
首先,先用terminal創立一個專案:
django-admin startproject guest #建立guest專案
此刻,你就會看到你的專案建立起來,專案裡面有:
如果你guest,就會看到裡面的檔案有:
介紹每個檔案的用途:
1、_ini_.py:識別一個目錄為Python的標準套件。
2、settings.py:專案設定檔(資料庫配置、應用程式配置、範本配置)
3、urls.py:專案的url宣告
4、wsgi.py:與WSGI相容的web伺服器為你專案提供服務入口
5、manage.py:命令列工具,主要用於專案互動
先測試你的django能否運行:
python manage.py runserver
輸入127.0.0.1:8000,就可以看到運行的畫面為
基本觀念說明:
URL(Uniform Resource Locator)-“統一資源定位器“,正確的學術名詞是網域名稱 (Domain name),而白話的說法,就是網站地址,大家常講的網址。網址就像是每個人家裡的地址一樣,要知道對方正確的地址,才能夠到達對方的位置,網址的樣式大部分如同這樣 https://www.design-hu.com/。x
更多詳細資訊與資料來源:
換句話說,在設定專案時,要先登記網路的位址(類似戶口名簿概念),在url.py中,通常表達方式為:
path('網路地址', 網路資源),
比如:地址是:台中市大雅區~ 資源:王小明負責
WSGI 是作為 Web 伺服器與 Web 應用程式或應用框架之間的一種低階別的介面,以提升可移植 Web 應用開發的共同點。WSGI 是基於現存的 CGI 標準而設計的。很多框架都自帶了 WSGI server ,比如 Flask,webpy,Django、CherryPy等等。當然效能都不好,自帶的 web server 更多的是測試用途,釋出時則使用生產環境的 WSGI server或者是聯合 nginx 做 uwsgi 。也就是說,WSGI就像是一座橋樑,一邊連著web伺服器,另一邊連著使用者的應用。但是呢,這個橋的功能很弱,有時候還需要別的橋來幫忙才能進行處理。
更多詳細資源:https://codertw.com/%E7%A8%8B%E5%BC%8F%E8%AA%9E%E8%A8%80/362704/
整理一些常用的manage.py的互動指令:
1.建立專案:
django-admin startproject 專案名稱
2.建立專案的應用程式:
python manage.py startapp 應用程式
3.資料模型的轉移:
python manage.py migrate
4.當資料轉移成功,就可以自動生成後台:
python manage.py createsuperuser
5.負責根據對資料模型所做的更改來創建新的遷移:
python manage.py makemigrations 應用程式
6.啟動你的專案
python manage.py runserver
開始建立你的應用程式
進入你的專案,建立一個sign(登入)的應用程式
python manage.py startapp sign
進入你的應用程式,你就會看到以下檔案
介紹每個檔案用途:
1、_ini_.py:識別一個目錄為Python的標準套件。
2、models.py:資料庫的模型配置,建立應用程式資料表模型(對應資料庫的相關操作)
3、admin.py:對映models中的資料到django內建的admin
4、migrations.py:紀錄models中資料庫的變更
5、test.py:建立測試案例
6、views.py:視圖檔,控制像前端頁面顯示內容
關係:
資料庫-models.py、admin.py、migrations.py
測試-test.py
視圖-views.py
針對views.py,我個人喜歡將它定義成 “功能設計”
專案設定
打開guest/setting.py,到下方的installed_apps加入你需要新增的應用程式
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'sign',
]
setting想像成,你要製作登入系統時,你需要一個環境配置,並給予他一個具有登入的環境配置。
在網頁設計中,我簡單的把他思考:
1、提供環境 -setting.py
2、提供網路位址 -urls.py
3、提供網路的功能 -views.py
環境設定好了,我們要提供網路的位址,到urls.py加入你的網路位址
path('index/', views.index),
但是問題來了,我們定義了urls,卻沒有真的把sign放進來,所以,我們需要將他放進這個位址,告訴urls,我們真的有這個功能要做。
(總不能告訴urls說,我要做這個功能,但是卻沒有著功能的資源去部署上去吧~)
所以,到urls上加入
from sign import views #匯入sign應用程式到views檔
基本上,到這裡你的網路位址做好了
最後,我們要思考,這個位址要提供什麼功能?
於是,我們到views.py裏新增一個函式:
問題來了,要怎麼顯示?
先用最簡單的,基本網頁回覆,所以,先導入:
from django.http import HttpResponse #基本的伺服器回復
然後到你的功能區放入你的函式:
def index(request):
return HttpResponse("Hello Django") #直接伺服器回復
確定完三項的目標後,開始啟動你的django
python manage.py runserver
最後你輸入:http://127.0.0.1:8000/index
可以看到:
但是,問題來了!
我要如何導入我美美的網頁?
假設我有一個網頁,叫做index.html
問題來了,我要怎麼將它放入?
放入環境?
這是登入頁面,直接放入環境也大才小用了
放入位址?
都有定義sign的功能,在做一個index?
所以,當然放入功能!
如同戶口名簿,你登記你家是便利超商,你當然在你家的超商做超商功能啊~
既然要導入美美的網頁,我們要先在sign內建立一個template資料夾。
並將index.html放入資料夾內,在上面隨意輸入你的前端語法
<html>
<head>
<title>Django Page</title>
</head>
<body>
<h1>大家好~</h1>
</body>
</html>
此刻,打開views.py將你的功能重新編寫:
def index(request):
return render(request,"index.html")
確定完成後,開始啟動你的django
python manage.py runserver
最後你輸入:http://127.0.0.1:8000/index
可以看到:
介紹:HTTP、REQUEST、RESPONSE
Client & Server
在傳遞資訊的兩端我們稱之為「客戶端(Client)」、「伺服器端(Server)」
客戶端(Client)
以網頁來說就是你的瀏覽器(Browser),會發出「請求 Request」傳遞到 Server 端。
伺服器端(Server)
收到 Request 後,會開始處理資料,然會回傳「回應 Response」到 Client 端。
詳細資料來源:
所以,針對前端的功能設計,我們需要會發出「請求 Request」傳遞到 Server 端。
留言
張貼留言