เวลาจะใช้งานก็ติ๊กว่าเกิดวันไหนตามดังนี้แล้วก็กด Submit แล้วจะไปดึงไฟล์ Python มารันโปรแกรมที่ได้เขียนเอาไว้ โดยหน้าตาจะเป็นแบบนี้
HTML Code
ส่งค่า key ให้เป็นตัวย่อของวันต่างๆไปให้กับ ไฟล์ python เพื่อทำการคำนวณ
Python Code
ในไฟล์ python จะ import cgi กับ csv มาโดยจะมีการรับค่า key ที่จะรับมาเป็นตัวย่อของแต่ละวันเข้ามาเพื่อทำการคำนวณ เริ่มแรกก็จะทำการเปิดไฟล์ days.csv โดยใช้คำสั่ง DictReader() โดยจะเปิดแบบ r หรือ read only หลังจากนั้นก็จะเก็บข้อมูลไว้ในลิสต์ 2 ชุด ชุดแรกจะเก็บ keyword หรือตัวย่อ ของแต่ละวันในไฟล์ csv ไปใส่ในลิสต์ อีกชุดจะเอาไว้เก็บชุดตัวเลขที่เป็นจำนวนคนที่เกิดในวันนั้นๆ หน้าตา default ของไฟล์ csv จะเป็นดังนี้
การใช้คำสั่ง csv.DictReader() และ csv.DictWriter() จะแตกต่างกับการ write และ read ธรรมดาตรงที่จะมีส่วนของหัว (fieldnames) มาเป็นตัวกำหนดคอลัมน์ โดยในงานนี้จะเป็น d , number ดังรูปภาพด้านบน หลังจากที่เก็บข้อมูลแล้วก็จะมีการสร้างลูปเพื่อเช็คว่า key ที่รับมานั้นตรงกับ key ในลิสต์วันไหน โดย date จะเป็น list ที่เก็บวัน และ number จะเป็น list ที่เก็บจำนวนคน
โดยถ้าหากตัวแปร days ที่เป็นตัวแปรที่รับค่า key มาจากไฟล์ html ตรงกับวันใดก็จะให้บวกจำนวนคนเพิ่มขึ้นไปซึ่งจะเป็น index ตัวเดียวกัน
ขั้นตอนสุดท้ายจะเป็นการเขียนทับไฟล์ csv เพื่อไว้ใช้ในการคำนวณครั้งต่อไป
ปัญหาที่พบในการเขียนไฟล์คือในการเขียนแบบ DictWriter เมื่อเขียนไปแล้วส่วนหัวจะหายไปหรือ d,number จะหายไปทำให้การอ่านไฟล์ นั้นจะไม่สามารถอ่านได้ ก็เลยทำการเขียนในส่วนหัว แล้วก็วนลูบเขียนในส่วนเนื้อหาแยกส่วนกัน
ในส่วนของโค้ด html ก็จะให้แสดงวันแล้วก็จำนวน โดยจะเอา list number มาใส่ให้ตรงกับวันเป็นอันเสร็จสิ้น
ไม่มีความคิดเห็น:
แสดงความคิดเห็น