剛看到標題可能會不知道今天要幹嘛,我們今天要接續Day 09的內容,把從資料庫資料表取得的資料,用表格的形式在畫面上呈現出來。
複習一下我們在Day 09最後呈現的網頁 :
接下來要分3部分開始實作囉!
注意! 要先在
members/templates
新增1個index.html
(新增就好先不動它)。
這次我們一樣要去修改members/views.py
的index
方法,把它修改成像下方這樣 :
from django.http import HttpResponse
from django.template import loader
from .models import Members
def index(request):
mymembers = Members.objects.all().values() #1
template = loader.get_template('index.html') #2
context = {
'mymembers': mymembers, #3
}
return HttpResponse(template.render(context, request)) #4
Members
資料表的紀錄(Reoord
)取出來放到mymembers
裡面index.html
這個Template
並放到同名變數template
裡面context
的變數,然後以Dict
的Key-Value
形式,放進變數mymembers
context
傳到template
裡面,最後以template
回應請求並顯示在瀏覽器的視窗畫面上我們剛剛把資料表的紀錄(Record
)資料傳給index.html
後,接下來就要到members/templates/index.html
稍微修改原始碼,把每筆紀錄(Record
)依序加到表格中。
修改之後長得像這樣:
<h1>Members</h1>
<table border="1">
{% for x in mymembers %}
<tr>
<td>{{ x.id }}</td>
<td>{{ x.firstname }}</td>
<td>{{ x.lastname }}</td>
</tr>
{% endfor %}
</table>
{% for x in mymembers %}
mymembers
就是context
裡面的Key
,而實際上取得的Value
則是QuerySet
,接著用For
迴圈把QuerySet
裡面的Record
逐一拿出來放到變數x
{{ x.id }}
id
值{{ x.firstname }}
firstname
值{{ x.lastname }}
lastname
值{% endfor %}
For
迴圈區塊最後就到檢視成果的部分囉!
打開CMD
並切換到虛擬環境(python venv
)的資料夾路徑下
(實際venv
路徑不一定會跟我一樣喔!)
輸入以下指令啟動虛擬環境
Scripts\activate.bat
啟動虛擬環境後結果如下:
接著切換路徑到Django Project
所在的資料夾下
接著輸入以下指令Start Server
py manage.py runserver
在瀏覽器輸入對應的網址(127.0.0.1:8000/members/
)就可以看到這次的成果
截至目前為止,我們只會在
Python Shell
裡面新增資料,接下來的2篇文章會介紹如何在網頁上新增資料到資料庫資料表。