Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

CGI ใน Python คืออะไร?


  • อินเทอร์เฟซเกตเวย์ทั่วไปหรือ CGI เป็นมาตรฐานสำหรับโปรแกรมเกตเวย์ภายนอกเพื่อเชื่อมต่อกับเซิร์ฟเวอร์ข้อมูล เช่น เซิร์ฟเวอร์ HTTP
  • เวอร์ชันปัจจุบันคือ CGI/1.1 และ CGI/1.2 อยู่ในระหว่างดำเนินการ

การท่องเว็บ

เพื่อให้เข้าใจแนวคิดของ CGI ให้เราดูว่าเกิดอะไรขึ้นเมื่อเราคลิกไฮเปอร์ลิงก์เพื่อเรียกดูหน้าเว็บหรือ URL เฉพาะ

  • เบราว์เซอร์ของคุณติดต่อกับเว็บเซิร์ฟเวอร์ HTTP และต้องการ URL เช่นชื่อไฟล์
  • เว็บเซิร์ฟเวอร์แยกวิเคราะห์ URL และค้นหาชื่อไฟล์ หากพบไฟล์นั้น ให้ส่งกลับไปที่เบราว์เซอร์ มิฉะนั้นจะส่งข้อความแสดงข้อผิดพลาดที่ระบุว่าคุณขอไฟล์ผิด
  • เว็บเบราว์เซอร์ตอบสนองจากเว็บเซิร์ฟเวอร์และแสดงไฟล์ที่ได้รับหรือข้อความแสดงข้อผิดพลาด

อย่างไรก็ตาม เป็นไปได้ที่จะตั้งค่าเซิร์ฟเวอร์ HTTP เพื่อที่ว่าเมื่อใดก็ตามที่มีการร้องขอไฟล์ในไดเร็กทอรีบางไฟล์ ไฟล์จะไม่ถูกส่งกลับ แทนที่จะทำงานเป็นโปรแกรม และสิ่งที่ส่งออกของโปรแกรมนั้นจะถูกส่งกลับมาเพื่อให้เบราว์เซอร์ของคุณแสดงผล ฟังก์ชันนี้เรียกว่า Common Gateway Interface หรือ CGI และโปรแกรมเรียกว่าสคริปต์ CGI โปรแกรม CGI เหล่านี้อาจเป็น Python Script, PERL Script, Shell Script, C หรือ C++ เป็นต้น

แผนภาพสถาปัตยกรรม CGI

CGI ใน Python คืออะไร?

การสนับสนุนและกำหนดค่าเว็บเซิร์ฟเวอร์

ก่อนที่คุณจะดำเนินการเขียนโปรแกรม CGI ตรวจสอบให้แน่ใจว่าเว็บเซิร์ฟเวอร์ของคุณรองรับ CGI และมีการกำหนดค่าให้จัดการโปรแกรม CGI โปรแกรม CGI ทั้งหมดที่จะดำเนินการโดยเซิร์ฟเวอร์ HTTP จะถูกเก็บไว้ในไดเร็กทอรีที่กำหนดไว้ล่วงหน้า ไดเร็กทอรีนี้เรียกว่า CGI Directory และตามแบบแผนจะตั้งชื่อเป็น /var/www/cgi-bin ตามธรรมเนียม ไฟล์ CGI มีนามสกุลเป็น cgi แต่คุณสามารถเก็บไฟล์ของคุณด้วยนามสกุล .py หลามได้เช่นกัน

ตามค่าเริ่มต้น เซิร์ฟเวอร์ Linux ถูกกำหนดค่าให้รันเฉพาะสคริปต์ในไดเร็กทอรี cgi-bin ใน /var/www หากคุณต้องการระบุไดเร็กทอรีอื่นเพื่อเรียกใช้สคริปต์ CGI ของคุณ ให้แสดงความคิดเห็นบรรทัดต่อไปนี้ในไฟล์ httpd.conf -

<Directory "/var/www/cgi-bin">
   AllowOverride None
   Options ExecCGI
   Order allow,deny
   Allow from all
</Directory>
<Directory "/var/www/cgi-bin">
Options All
</Directory>

ที่นี่ เราคิดว่าคุณมีเว็บเซิร์ฟเวอร์และทำงานสำเร็จ และคุณสามารถเรียกใช้โปรแกรม CGI อื่น ๆ เช่น Perl หรือ Shell เป็นต้น