สำหรับบทความนี้ก็ต่อจากครั้งก่อนครับ สามารถไปอ่านตอนก่อนได้ที่นี่ครับ


ในครั้งที่แล้วเราสร้าง app ขึ้นมาเก็บตัว blog ของเราโดยเฉพาะ ใช่มั้ยครับ ซึ่งอย่างที่ผมบอกไปว่าที่ต้องทำอย่างนี้ก็เพื่อที่จะทำให้เราจัดสรรเว็บได้ง่ายขึ้นแม้ว่ามันจะขนาดใหญ่ขึ้นก็ตาม

แนวคิดในการทำเว็บ blog ของเราเราอาจจะใช้แนวคิดเดิมที่เราใช้ template ก็ได้ครับ แต่แน่นอนว่ามันอาจจะยากพอสมควรเพราะว่าเราต้องไปจัดการพวก database เอง เพราะฉะนั้นเราจะใช้สิ่งที่ Django มี Built-in มาให้ชื่อว่า Model ครับ

ถ้าจำได้ใน app blog ที่เราสร้างครั้งที่แล้ว หากเราดูในโฟลเดอร์นั้นจะเห็นไฟล์ models.py อยู่ครับ

models.py

แต่ก่อนอื่นก่อนจะสร้าง model ของเรา ขอให้มารู้จักกันก่อนว่า model คืออะไร

ถ้ารู้จัก SQL อยู่แล้ว Model ใน Django เหมือนกับเป็น wrapper ที่ไปครอบ SQL อีกทีครับ โดยมันจะช่วยให้เราจัดการฐานข้อมูลได้ง่ายขึ้น

แต่ถ้าไม่รู้จักก็ไม่เป็นไรครับ นึกภาพว่า model เป็นเหมือนกับตาราง excel ตารางนึง ซึ่งจะมีคอลัมน์ของมันและแถวของมัน

สมมติว่ามันเป็นโมเดลคนโดยแต่ละคนก็จะเก็บ ชื่อ เพศ อายุไว้ด้วย

แต่ละแถวก็จะเก็บสิ่งของ (ในกรณีนี้คือคน) ไว้ แล้วในแต่ละคอลัมน์ในแถวนั้นก็จะเก็บพวกข้อมูลต่างๆที่เรากำหนดไว้ โดยแต่ละแถวก็จะมีเลขตัวนึง ที่จะเฉพาะเจาะจงสำหรับแถวนั้นๆ (ใน django เรียกว่า pk มาจาก primary key)

ดังนั้นสำหรับ blog ของเราแน่นอนว่าข้อมูลที่เราจะเอามาใส่ก็จะเยอะมากครับ ดังนั้นแทนที่เราจะทำ template ทำ view ทำ urls ใส่สำหรับ blog ทุกอัน เราก็จะสร้างโมเดลขึ้นมา แล้วก็ค่อยดึงข้อมูลในโมเดลเนี้ยไปแสดงผลแทนครับ

เราจะเริ่ม code กันที่ไฟล์ models.py ครับ

ประกาศคลาส Blog ขึ้นมาเอาไว้สำหรับ model ของเรา ทีนี้ผมก็จะใส่ field ลงไป ซึ่ง field ก็เปรียบเสมือน column แต่ละ column ในแต่ละแถวครับ

ผมสร้างช่อง title เอาไว้เก็บชื่อโพสต์นั้นๆ ให้เป็น CharField หรือ Character Field สำหรับเก็บสตริงและมีความยาวสูงสุด 200 ตัวอักษร

date เก็บวันที่โพสต์ โดย auto_now_add นี้จะตั้งค่าเวลาเป็นเวลานั้นอัตโนมัติเลยเมื่อมี Blog ถูกสร้างขึ้น

body ก็ตามชื่อครับเอาไว้เก็บข้อความของโพสต์ ผมตั้งเป็น CharField เหมือน title แต่ความยาวสูงสุดที่ 1000 แทน

ส่วน ฟังค์ชัน __str__ ตรงนี้ผมขอละไว้ก่อนเดี๋ยวจะมาอธิบายในครั้งหน้าครับ


สำหรับบทความนี้ผมขอตัดก่อนเพื่อไม่ให้ยาวจนเกินไปครับ สำหรับการใช้งาน model ผมขอยกไปครั้งหน้าครับ สำหรับวันนี้ขอลาไปก่อนครับ ขอบคุณมากครับ

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