iT邦幫忙

2022 iThome 鐵人賽

DAY 9
0
Modern Web

Django 初心者之旅系列 第 9

【Day 09】在 Python Shell 新增 Records

  • 分享至 

  • xImage
  •  

昨天我們建好一個名為Members的資料表,今天我們要做的就是在Python Shell裡面透過Python程式碼,去新增數筆紀錄(Record)到資料表上。

而在新增完紀錄後,我們會再透過修改預先寫好的view方法(也就是index),把加到Members資料表上的紀錄傳到訪問者那端並顯示在網頁上。

透過 Python Shell 新增 Record

要進到Python Shell開始撰寫Python要先做以下操作 :

  1. 打開CMD並切換到虛擬環境(python venv)的資料夾路徑下

    (實際venv路徑不一定會跟我一樣喔!)

  2. 輸入以下指令啟動虛擬環境

    Scripts\activate.bat
    

    啟動虛擬環境後結果如下:

  3. 接著切換路徑到Django Project所在的資料夾下

  4. 再輸入以下指令進到Shell裡面

    py manage.py shell

  5. 進入Shell後依序輸入以下指令

    • from members.models import Members

      • Members資料表 import 進來
    • Members.objects.all()

      • 回傳一個QuerySet,即存放Members資料表上所有RecordList

      (目前資料表是空的,沒有任何紀錄)

    • member = Members(firstname='Emil', lastname='Refsnes')

      • 建立名為member的 variable,用來存放欲新增的紀錄
      • 建立的Members物件即為新的一筆紀錄並在括號內指定資料欄位的值
    • member.save()

      • 將新建的這筆紀錄,實際存放到資料表裡面

    • Members.objects.all().values()

      • 回傳一個QuerySet並顯示現在Members資料表上的紀錄和其詳細欄位值

      (在QuerySet裡面可以看到剛剛新增的那筆Record)

新增多筆紀錄

這邊跟剛剛新增紀錄的做法是一樣的,只是改成建立多筆紀錄後,再透過For迴圈把它一個個存放到Members資料表上。

  • 建立4筆新紀錄,然後存到List裡面,最後透過For迴圈將記錄實際存放到資料表上

  • 一樣用Members.objects.all().values()檢視Members上的紀錄

到這邊基本上就學會了如何在Python Shell裡,撰寫Python程式碼去實際在 Memebers資料表新增紀錄囉! 緊接著我們要把這些資料表上的紀錄顯示在瀏覽器的畫面裡。

在瀏覽器上檢視資料表紀錄

還記得我們在【Day 07】初探 Django Templates 的時候,跑去修改membersviews.py,讓它回傳網頁到瀏覽器上嗎? 這次我們一樣要去修改index這個方法,讓它把資料表裡面的資料回傳並顯示在瀏覽器的畫面上。

修改 View

原本的members.py/views.py長這樣 :

from django.http import HttpResponse
from django.template import loader

def index(request):
  template = loader.get_template('myfirst.html')
  HttpResponse(template.render())

我們現在需要把它改成這樣 :

from django.http import HttpResponse
from django.template import loader
from .models import Members

def index(request):
  mymembers = Members.objects.all().values()
  output = ""
  for x in mymembers:
    output += x["firstname"]
  return HttpResponse(output)
  • from .models import Members
    • Members這張資料表 import 進來
  • mymembers = Members.objects.all().values()
    • 建立變數mymembers存放Members上的所有紀錄,這些紀錄會被包在一個List裡面被回傳
  • output
    • 我們要輸出、回傳到瀏覽器上的字串
  • for x in mymembers: ...
    • 使用For迴圈逐一將Members上每筆紀錄的firstname欄位值和output串接在一起
  • return HttpResponse(output)
    • 將這些字串回傳到瀏覽器並顯示在畫面上

啟動 Server 在瀏覽器上檢視成果

Run Server之前,我們要先從Python Shell裡面退出來,輸入以下指令退出Shell:

quit()

接著輸入前面提過數次的指令開啟Server:

py manage.py runserver

在瀏覽器輸入並前往網址http://127.0.0.1:8000/members/檢視成果 :

今天我們學會如何在Python Shell裡面新增資料表紀錄並在瀏覽器上檢視它們。明天會是系列文第一次的番外篇,內容主要是介紹DjangoORM是什麼?


上一篇
【Day 08】初探 Django Models
下一篇
【Day 10】Django Models 番外篇(1) – ORM
系列文
Django 初心者之旅31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言