ตอนที่แล้วๆเราจัดการกับ Database ของเราเสร็จเรียบร้อยแล้ว ตั้งแต่การสร้าง Model ไปจนถึงการจัดการด้วย Command line และ Admin ตอนนี้เราจะมาดึงข้อมูลใน Database มาแสดงผลกันครับ


อะไรคือ List view?

List view ก็ตามชื่อเลยครับ คำว่า List บ่งบอกว่าเราจะ list รายการที่มีใน Model ของเรา ซึ่งใน Model Blog ของเราก็จะมี Blog อยู่หลายอัน การ List ก็คือการนำ Blog แต่ละอันมาแสดงนั่นเอง

ถ้าทำเสร็จก็จะหน้าตาประมาณนี้ครับ

เราจะมาสร้าง Check list ที่เราจำเป็นต้องทำก่อน

  1. สร้าง url ใน urls.py ชี้ไปที่หน้าที่ต้องการ
  2. สร้าง ฟังค์ชัน view สำหรับแสดงผล
  3. สร้าง Template

เนื่องจากในโปรเจคนี้เรายังไม่ได้ตั้งค่าสำหรับ Templates เลย ก็เลยต้องไปตั้งก่อนครับ วิธีตั้ง

*ทิป เนื่องจาก ecosystem ของ Django สนับสนุนความ Plug and play ของ app มากๆ เราจะนิยมสร้าง folder templates แยกไว้ที่ app นั้นด้วย เวลาจะใช้จะได้แค่ก็อป app ไปไม่ต้องมาตั้งค่า templates ให้ยุ่งยาก โดย django จะวิ่งไปหา templates ในโฟลเดอร์แต่ละ app เอง

ผมวางแผนไว้ว่าจะสร้าง view ชื่อ blog_list เลยสร้าง url ตามนี้ครับ

สำหรับ view ก็ไม่มีอะไร fancy มากครับ เราใช้ Blog.objects.all() เพื่อลิสต์ blog ทั้งหมดที่มี จากนั้นก็ยัดใส่ Dictionary แล้วก็โยนใส่ render()

การโยน dictionary อย่างนี้เรียกว่า context จะทำให้เราสามารถเอาข้อมูลจากหลังบ้านไปแสดงที่หน้า template ได้

สำหรับหน้า Template เราจะดึงข้อมูลจากคีย์ qs (ที่เราโยนใส่ใน render()) มาแสดงที่ละ element

สำหรับ Django’s template language อ่านเพิ่มได้ที่นี่

ลองรันเซิฟเวอร์ดู

python manage.py runserver

ผลลัพธ์

จะเห็นว่าทำงานได้ครับ


Medium ที่ 25
ปีนี้ผมตั้งใจว่าจะเขียน Medium ให้ได้เดือนละ 4–5 Medium ครับ สิ้นปีก็จะมี 52 Medium เท่ากับจำนวนสัปดาห์ใน 1 ปีพอดี ไม่รู้จะทำได้มั้ย แต่ก็ถือเป็น Passion เล็กๆน้อยๆของผมครับ 5555
ผมเขียนบทความหลายแนวแล้วแต่ว่าอยากเขียนยังไง ถ้าอยากให้กำลังใจช่วยกด Clap ให้ซักที สองทีด้วยนะครับ :D
เจอกันบทความหน้าครับ