ในการทดลองที่ได้ทำก็จะทำจาก ตัวอย่างการสอนใช้จากในเว็บ
(cr. ===> http://xmodulo.com/create-use-python-cgi-scripts.html ) โดยในเว็บค่อนข้างจะอธิบายวิธีการทดลองละเอียดมาก ซึ่งเว็บนี้ได้คุณ Thakdanai Kunsaen เป็นคนแนะนำมา ต้องขอขอบพระคุณอย่างสูง โดยเมื่อเอาสิ่งที่เว็บที่เพื่อนแนะนำมา มาบวกกับเนื้อหาที่อยู่ในลิ้งค์ก่อนหน้านี้ ก็จะทำให้เห็นภาพชัดเจนยิ่งขึ้น
ขั้นแรกก็ได้ใช้คำสั่ง python -m CGIHTTPServer 8000 เพื่อทำการเปิด Server โดยหน้าตาที่ได้ก็จะเป็นดังนี้
โดยการทำงานแบบ dynamic จะมีหน้าเว็บ เว็บหนึ่งไว้เพื่อทำการรับข้อมููลแล้วเมื่อทำการ กดปุ่ม submit หรือ การใส่ข้อมูลในรูปแบบต่างๆ ก็จะไปดึง เอาไฟล์ที่อยู่ใน โฟลเดอร์ชื่อ cgi-bin ออกมาเรนเดอร์แสดงผลออกมาผ่านทาง Web browser
ในไฟล์ cgi_test1.html จะมีหน้าตาดังนี้
html
on web browser
จะเห็นว่าใน code html จะมี คำสั่ง form โดยจะระบุ action ว่าให้ดึงไฟล์ในโฟล์เดอร์ cgi-bin ที่มีชื่อว่า myscript.py โดยจะเป็นไฟล์ python ที่เขียนให้แสดงผลเป็น html โดยเหตุผลที่ใช้ไฟล์ python คุณ Sarik Kampan ได้บอกว่าเพราะว่า python มีการคำนวณที่เร็วกว่า html ซึ่งผมก็ยังไม่ได้ไปหาข้อพิสูจน์ในเรื่องนี้
โดยเมื่อกด Submit แล้วผลก็จะได้ออกมาดังนี้
ก็เป็นอันเรียบร้อยสำหรับการทดลองการเขียน website แบบ dynamic
แต่ในการทดลองจะมีปัญหาดังนี้
1. เมื่อทำการกดเรียกไฟล์ cgi_test1.html จะไม่สามารถเรียกดูหน้าเว็บได้ มันจะให้โหลดแทน ซึ่งวิธีแก้ก็ทำได้โดยการกำหนดสิทธ์ โดยใช้คำสั่ง chmod 755 filename เพื่อให้สามารถใช้งานได้
2. เมื่อหมดปัญหาจากข้อ 1. ก็ต้องมาเจอกับการที่ว่าเมื่อกดปุ่ม Submit แล้วดันไม่ขึ้น ซึ่งปัญหานี้ก็แก้ปัญหาได้โดยการที่ คุณ Sarik K. ได้บอกว่า "เพื่อนลองไปดูหน้า terminal ของ server สิ" เมื่อผมได้ไปดูก็ได้กระจ่าง ในหน้า terminal ของ server หลังจากที่กดปุ่ม submit ก็ได้มีข้อความ error ว่าไฟล์ที่จะดึงนั้นไม่มี permission เช่นกัน ผมเลยต้องไปกำหนดสิทธิ์ให้ไฟล์ที่จะดึง หรือ ก็คือไฟล์ myscript.py นั้นเอง ซึ่งก็ใช้คำสั่งเดิมก็คือ chmod 755 filename หลังจากนั้น ปัญหานี้ก็จะหมดไป
ส่วนด้านล่างนี้จะเป็นการทดลอง แบบที่มีการใส่ข้อมูลแบบฟอร์มลงไป แล้ว กดปุ่ม submit
ผลที่ได้จะเป็นดังนี้
ซึ่งจะมีการใส่คำสั่ง cgi.FieldStorage() เพื่อใช้ในการเรียกข้อมูล โดยจะมีการกำหนด ชื่อ หรือ คล้ายๆ ID ในไฟล์ html ตัวแรก พอใส่ลงไป ก็จะไปถูกดึงมาใส่กับ python มาคำนวณและ render ออกมาบน Web Browser ให้ได้ดูกัน
ไม่มีความคิดเห็น:
แสดงความคิดเห็น