ใน TU2 นั้นจะสอนการสร้างคำถามและช้อยส์ผ่านทาง terminal และการสร้าง Username Password เพื่อใช้ในการแก้ไข เพิ่มและลบคำถาม ผ่านทางหน้า admin
หากมีการเปลี่ยนแปลงหรือการสร้างแอพใหม่ ต้องทำการอัพเดทให้โปรเจค โดยใช้คำสั่ง migrate ดังภาพ
หัวใจสำคัญของแอพของเราอยู่ที่ models.py ซึ่งจะเป็นตัวบ่งบอกสิ่งหลักของแอพของเรา ดังแอพ polls สิ่งที่สำคัญคือคำถามกับช้อยส์ ดังนั้นใน models.py ของแอพ polls นั้น จึงเป็น Question และ Choice ตามลำดับ โดยใน class Question นั้น จะมีตัวแปร question_text มารับ text mode โดยมีความยาวไม่เกิน 200 ตัวอักษร และมี pub_date มารับข้อมูลของเวลา ส่วนใน class Choice นั้น จะกำหนดว่า class Choice นั้น เป็น sub class ของ class Question และมีตัวแปร choice_text มารับข้อมูลที่เป็น text mode เช่นกัน จากนั้นมีตัวแปร votes มารับข้อมูลที่เป็น Integer หรือจำนวนเต็ม โดยตั้งค่าเริ่มต้นไว้ที่ 0
ต่อมาไปที่โปรเจคของเรา ในไฟล์ setting.py จะทำการเพิ่มแอพของเราเข้าไป โดยในบรรทัดที่เพิ่มคือ polls.apps.Pollsconfig นั่นเอง
หากมีการแก้ไขอะไรใน models.py แล้ว ต้องทำการอัพเดทให้แอพรับรู้ โดยใช้คำสั่ง makemigrations และตามด้วยชื่อแอพของเรา ดังในภาพ
เมื่อทำการ migrations แล้ว จะมีผลดังภาพข้างต้น
คือคำสั่งที่ใช้แสดงข้อมูลใน database ซึ่งเราจะไม่สนใจในจุดนี้
หากทำสำเร็จ จะขึ้นผลดังภาพข้างต้น
ต่อไปจะทำการสร้างคำถามและคำตอบ โดยเริ่มต้นที่การเปิด shell เพื่อเพิ่มคำถามและคำตอบผ่าน terminal ของเรา ดังภาพ
จากนั้นให้ก็อบคำสั่งที่ตามหลัง >>> ไปวางไว้ใน terminal ของเราตามลำดับ ส่วนที่ไม่ได้อยู่หลัง >>> คือผลที่เราควรจะเห็นเมื่อพิมคำสั่งเสร็จและกด Enter โดยในภาพข้างต้นนั้นจะทำการ import class ใน models.py ของเรามาใช้เก็บข้อมูลลง database ซึ่งคำสั่งแรก Question.objects.all() เป็นการเปิดดูคำถามทั้งหมดที่เรามีอยู่ ต่อมาคือการ import เวลาตามโซนที่เราอยู่ ส่วนต่อมา q = Question(question_text = "What's new?", pub_date = timezone.now()) คือการเพิ่มคำถามเก็บไว้ในตัวแปร q ซึ่งจะเห็นว่า คำถามของเราคือ What's new? จะถูกเก็บไว้ใน question_text ซึ่งเป็นตัวแปรที่รับค่า text mode ใน class Question และ pub_date ก็คือตัวแปรใน class Question ที่ใช้รับค่าเวลาเช่นกัน จากนั้น q.save() ก็คือคำสั่งบันทึกคำถามนั่นเอง ต่อมา q.id คือการดูว่าคำถามของเรามีเลข id เท่าไหร่ หากเราพิม q.question_text ลงไป terminal จะแสดงคำถามของเราออกมา เช่นเดียวกันกับ หากเราพิม q.pub_date ลงไป terminal จะแสดงว่าเวลาและโซนของเวลาออกมาเช่นกัน
ใน TU2 จะเป็นการสอนสร้างคำถามและช้อยส์ผ่าน terminal และสร้าง Username Password เพื่อใช้เข้าไปแก้ไข เพิ่มหรือลบ คำถามและช้อยส์ผ่านทางหน้า admin
กลับไปที่ models.py ใน class Question ให้เพิ่ม method ดังภาพลงไป เพื่อเป็นตัวกำหนดเวลาตอนเราสร้างคำถามขึ้นมาใหม่
ต่อมาในส่วนของการสร้างช้อยส์ คำสั่งที่เหมือนกับการสร้างคำถาม จะขอไม่อธิบายซ้ำ เริ่มต้นที่ q = Question.objects.get(pk = 1) เป็นการบอกว่า เราจะเพิ่มช้อยส์ที่คำถามไหน
q.choice_set.all() เป็นการเปิดดูช้อยส์ทั้งหมดที่เรามี และ q.choice_set.create(choice_text = 'Not Much', votes = 0) คือคำสั่งที่ใช้เพิ่มช้อยส์ โดยช้อยส์ที่เพิ่มคือคำว่า Not Much และตั้งค่า votes = 0 ตอนเริ่มต้น โดยถ้าหากจำได้ จะมีตัวแปร vote ที่ class Choice ใช้รับค่า Integer นั่นเอง ต่อมาคือ q.choice_set.count() คือคำสั่งที่ใช้ดูว่ามีช้อยส์ทั้งหมดกี่ช้อยส์ ในส่วนสุดท้ายนั้น จะเป็นการสอนการลบช้อยส์ที่เราสร้างขึ้นมาผ่าน terminal
ต่อมาจะเป็นการสร้าง user id ที่ใช้สำหรับเข้าหน้า admin ไว้สำหรับแก้ไข เพิ่มลบคำถามและช้อยส์ โดยพิมตามภาพข้างต้นผ่าน terminal
หากเข้าหน้า admin จะพบหน้าดังในรูป
เมื่อกรอก Username Password ตามที่เราตั้งแล้ว จะพบกับหน้าเว็บเพจดังภาพ
จากนั้นไปที่ admin.py ก็อบโค้ดตามภาพ วางลงในไฟล์ของเรา เพื่อเพิ่มช่องของ Question ให้เราสามารถแก้ไขได้ผ่านทางหน้า admin
เมื่อไปที่หน้า admin อีกครั้งจะพบกับแอพของเรา และคำถามให้เราเพิ่ม ลบ หรือแก้ไข้
หากต้องการทำแบบเดียวกันกับช้อยส์ ก็ให้ไปเพิ่มในไฟล์ admin.py ดังที่ได้กล่าวมาแล้ว แต่ให้ใส่เป็น Choice ลงไปแทน Question
ไม่มีความคิดเห็น:
แสดงความคิดเห็น