สำหรับบทความนี้ก็ต่อจากครั้งก่อนครับ สามารถไปอ่านตอนก่อนได้ที่นี่ครับ
ในครั้งที่แล้วเราสร้าง app ขึ้นมาเก็บตัว blog ของเราโดยเฉพาะ ใช่มั้ยครับ ซึ่งอย่างที่ผมบอกไปว่าที่ต้องทำอย่างนี้ก็เพื่อที่จะทำให้เราจัดสรรเว็บได้ง่ายขึ้นแม้ว่ามันจะขนาดใหญ่ขึ้นก็ตาม
แนวคิดในการทำเว็บ blog ของเราเราอาจจะใช้แนวคิดเดิมที่เราใช้ template ก็ได้ครับ แต่แน่นอนว่ามันอาจจะยากพอสมควรเพราะว่าเราต้องไปจัดการพวก database เอง เพราะฉะนั้นเราจะใช้สิ่งที่ Django มี Built-in มาให้ชื่อว่า Model ครับ
ถ้าจำได้ใน app blog ที่เราสร้างครั้งที่แล้ว หากเราดูในโฟลเดอร์นั้นจะเห็นไฟล์ 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
เจอกันบทความหน้าครับ