Django 2.1.7 筆記(二): Templates and Views

Yu-Hsuan Yang
4 min readMay 11, 2019

--

串聯前後端的基礎!!

個人認為Django最方便的地方就是 可以直接把用python 寫成的function拿去應用在網站的呈現上! 例如你想寫一個購物網站 當使用者送出想購買的商品資訊時 可以直接寫個python的function把總價格算出來 然後!可以直接放在前端的指定位置!!

在第二層的專案名稱資料夾裡面有一個叫urls.py的檔案 打開裡面有個list如下:

urlpatterns = [
path('admin/', admin.site.urls),
]

未來要新增網站的連結都要加在這個list裡面

來說明一下path 這個函數~~

第一個參數: 連結的名字 未來你要打開這個網頁的時候 只要在chrome的網址列打上 128.0.0.1:8000/連結的名字 就可以打開囉~

第二個參數: 打開此連結時所要執行的function名字 這個function 要定義在views.py 裡面

現在請大家做個小小的實驗 path(‘admin/’, admin.site.urls) 是你在新增這個app時所預設的連結 是建資料庫用的 請大家在chrome的網址列輸入 128.0.0.1:8000/admin 看會發生甚麼事^^

接著來示範一個views 和template的實作: 在首頁印上今天的日期

  1. 我們要讓這個專案知道要執行我們這個app: 在 settings.py 裡面有個list 叫INSTALLED_APPS 在這個list中加入app的名字
INSTALLEED_APPS = [...app_name]

2. 加入templates 路徑: 在settings.py有個叫 TEMPLATES 的list 中的’DIRS’:[]改成

‘DIRS’: [ os.path.join(BASE_DIR, ‘templates’)]

這樣專案就知道templates擺放的位置在哪裡了

3. 所以templates到底在哪裡啦: 在app_name的資料夾裡面新增一個叫 templates的資料夾 以後你的templates就放這裡面了!!

4. 所以templates到底是甚麼: 是一個html檔 只是你想用function幫你填的地方要像以前寫填充題一樣把他挖一個空 例如現在我們要把今天的日期印在首頁上 可以建一個名為index.html 的template如下

<!doctype html>
<html>
<body>
<div>
<p>Date: {{date}}</p>
</div>
</body>
</html>

其中 {{date}} 的地方就是我們幫他挖的空

5. 在views.py中定義function:

import requests
import datetime
from django.shortcuts import render
# Create your views here.def welcome(request):
now = datetime.datetime.now().strftime('%Y/%m/%d')
c={'date':now}
return render(request,'index.html',c)

{{date}} 的地方對應到function 中的'date':now 意思是說我要function在{{date}} 的地方把現在的時間寫上去

6. 建立連結: 如最一開始所述 在urls.py 裡面新增

from app.views import *urlpatterns=[
path('admin/', admin.site.urls),
path('index/', welcome)
]

這樣就大功告成啦~~在終端機輸入 python manage.py runserver 然後在chrome的網址列輸入 128.0.0.1:8000/index 就會出現以下畫面

下一節會教大家要怎麼用自己的檔案美化前端(例如插入圖片) 跟單純用html的方式有點小小的不同 敬請期待~~

--

--