ค้นหาบล็อกนี้

วันจันทร์ที่ 9 ธันวาคม พ.ศ. 2556

ทดลองสร้าง Django app ตอนที่ 4

การเริ่มต้นเขียน form

          form คือ ส่วนที่มีหน้าที่สำหรับการติดต่อเพื่อรับข้อมูลจากผู้ใช้งานที่เข้าชมหน้าเว็บ  เช่น รับข้อมูลประวัติส่วนตัว  หรือผลโหวต  เป็นต้น  โดยวิธีการเริ่มเขียน form มีวิธีการดังนี้

1. ให้ทำการเปิด template ชื่อว่า detail.html ที่เคยสร้างไว้ในตอนที่ผ่านมา  แล้วทำการแก้ไข code ดังต่อไปนี้
แก้ไข code ในไฟล์ detail.html
          สำหรับ code ที่ทำการแก้ไขไปจะทำให้หน้าเว็บมีลักษณะเป็นการรับผลโหวตจากผู้ใช้  ดังภาพด้านล่าง
หน้าเว็บสำหรับการรับผลโหวตจากผู้ใช้
หน้าเว็บเมื่อทดลองทำการโหวต

2. ต่อมาให้ทดลองทำการแก้ไข code ในไฟล์ views.py ใน Directory ของ app โดยเราจะแก้ไขในส่วนของฟังก์ชัน vote ดังต่อไปนี้
ภาพแสดง code ในไฟล์ views.py หลังจากทำการแก้ไขแล้ว
          ในการทำการแก้ไข code ดังกล่าวนี้จะทำให้การเปลี่ยนแปลงคือ จะมีข้อความปรากฏขึ้นหากเรายังไม่ได้เลือก choice แล้วทำการกดปุ่มโหวต  และเมื่อทำการโหวตแล้วจะมีการไปเรียกใช้ฟังช์ชัน results ในการแสดงข้อความทางหน้าเว็บ  แสดงตัวอย่างดังภาพด้านล่าง
ตัวอย่างหน้าเว็บ เมื่อไม่ได้เลือกตัวเลือกใดแต่ทำการกดปุ่ม vote
ตัวอย่างหน้าเว็บ เมื่อทำการโหวตแล้วจะมีการเรียกใช้การแสดงข้อความในฟังก์ชัน results

3. ทดลองทำการแก้ไข code ของฟังก์ชัน results ในไฟล์ views.py เพื่อให้มีการเรียกใช้งาน template ดังภาพด้านล่าง
ภาพแสดง code ของฟังก์ชัน results หลังจากทำการแก้ไขแล้ว
          หลังจากนั้นให้สร้าง template ใหม่ชื่อ results.html ใน templates Directory ของ app ในตัวอย่างที่แสดงนี้จะอยู่ที่ polls/templates/polls/results.html  เสร็จแล้วให้ทำการแก้ไข code ดังนี้
ภาพแสดง code ของ template ชื่อ results.html
          เมื่อเราได้ทำการแก้ไข code ของฟังก์ชัน results และทำการสร้าง template ใหม่ชื่อ results เรียบร้อยแล้ว  จะมีความเปลี่ยนแปลงที่เกิดขึ้นกับหน้าเว็บคือ เมื่อเราทำการโหวตแล้วจะมีผลโหวตให้ดูได้ว่ามีคนโหวตเลือกตัวเลือกใดไปเท่าใดแล้ว  และมีลิงค์สำหรับการกลับไปทำการโหวตได้อีกครั้งหนึ่ง  ซึ่งหน้าเว็บที่แสดงให้เห็นนี้ก็เกิดจาก code ที่เราได้ทำการเขียนลงไปใน template ที่ชื่อ results.html ที่ได้สร้างขึ้นใหม่นั่นเอง  แสดงตัวอย่างหน้าเว็บดังภาพด้านล่าง
ภาพแสดงตัวอย่างหน้าเว็บหลังจากทำการโหวต


ทดลองการใช้ Generic views เพื่อทำให้ code สั้นลง

          ในการพัฒนาเว็บ application นั้น  เราจะใช้รูปแบบการแสดงหน้าเว็บบางรูปแบบซ้ำไปซ้ำมา  ดังนั้นใน django จึงรวบรวมรูปแบบที่นิยมใช้กันแล้วแยกออกมาเป็นสิ่งที่เรียกว่า Generic views เพื่อให้เราสร้างไฟล์ views ที่ใช้ในการแสดงหน้าเว็บได้อย่างรวดเร็วขึ้น  โดยในการทดลองเขียน Generic views นี้เราจะใช้เพื่อทำให้ code ของไฟล์ views สั้นลง มีขั้นตอนดังต่อไปนี้

1. ให้ทำการแก้ไข code ในไฟล์ ulrs.py ภายใน Directory ของ app ในตัวอย่างนี้จะอยู่ที่ polls/urls.py  โดยให้ทำการแก้ไขดังต่อไปนี้

ภาพแสดง code ในไฟล์ urls.py หลังจากทำการแก้ไข

2. ทำการแก้ไข code ในไฟล์ views.py ภายใน Directory ของ app โดยให้ทำการลบฟังก์ชัน index, detail และ results แล้วทำการสร้าง class ใหม่เพื่อใช้การ generic แทนฟังก์ชันเดิมที่ลบไป  ดังภาพด้านล่าง
code ของ class ที่สร้างขึ้นใหม่เพื่อใช้แทนฟังก์ชันที่ลบไป
          เมื่อทำการแก้ไขตามขั้นตอนที่ผ่านมาแล้ว  เราจะพบว่าการใช้ลักษณะที่เรียกว่า Generic views นี้ จะทำให้ code สั้นลงกว่าเดิม  แต่ยังให้ผลการแสดงผลหน้าเว็บเพจได้เหมือนเดิม

ไม่มีความคิดเห็น:

แสดงความคิดเห็น