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

โปรแกรม CGI แรกใน Python


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

ตัวอย่าง

#!/usr/bin/python
print "Content-type:text/html\r\n\r\n"
print '</html>'
print '</head>'
print '</title>Hello Word - First CGI Program<//title>'
print '<//head>'
print '</body>'
print '</h2>Hello Word! This is my first CGI program<//h2>'
print '<//body>'
print '<//html>'

ผลลัพธ์

หากคุณคลิก hello.py สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

Hello Word! This is my first CGI program

สคริปต์ hello.py นี้เป็นสคริปต์ Python แบบง่าย ซึ่งเขียนเอาต์พุตในไฟล์ STDOUT เช่น หน้าจอ มีคุณลักษณะพิเศษที่สำคัญและพิเศษอยู่หนึ่งประการคือบรรทัดแรกที่จะพิมพ์ Content-type:text/html\r\n\r\n . บรรทัดนี้จะถูกส่งกลับไปยังเบราว์เซอร์และระบุประเภทเนื้อหาที่จะแสดงบนหน้าจอเบราว์เซอร์

ถึงตอนนี้ คุณต้องเข้าใจแนวคิดพื้นฐานของ CGI แล้ว และคุณสามารถเขียนโปรแกรม CGI ที่ซับซ้อนได้มากมายโดยใช้ Python สคริปต์นี้สามารถโต้ตอบกับระบบภายนอกอื่นๆ เพื่อแลกเปลี่ยนข้อมูล เช่น RDBMS

ส่วนหัว HTTP

บรรทัด Content-type:text/html\r\n\r\n เป็นส่วนหนึ่งของส่วนหัว HTTP ซึ่งถูกส่งไปยังเบราว์เซอร์เพื่อทำความเข้าใจเนื้อหา ส่วนหัว HTTP ทั้งหมดจะอยู่ในรูปแบบต่อไปนี้ -

HTTP Field Name: Field Content

ตัวอย่าง

Content-type: text/html\r\n\r\n

มีส่วนหัว HTTP ที่สำคัญอื่นๆ สองสามรายการ ซึ่งคุณจะใช้บ่อยในการเขียนโปรแกรม CGI ของคุณ

ซีเนียร์ ส่วนหัวและคำอธิบาย
1 ประเภทเนื้อหา:
สตริง MIME ที่กำหนดรูปแบบของไฟล์ที่ส่งคืน ตัวอย่างคือ Content-type:text/html
2 หมดอายุ:วันที่
วันที่ข้อมูลกลายเป็นโมฆะ ใช้โดยเบราว์เซอร์เพื่อตัดสินใจว่าจะต้องรีเฟรชหน้าเมื่อใด สตริงวันที่ที่ถูกต้องอยู่ในรูปแบบ 01 มกราคม 1998 12:00:00 GMT
3 ตำแหน่ง:URL
URL ที่ส่งคืนแทน URL ที่ร้องขอ คุณสามารถใช้ฟิลด์นี้เพื่อเปลี่ยนเส้นทางคำขอไปยังไฟล์ใดก็ได้
4 แก้ไขล่าสุด:วันที่
วันที่แก้ไขทรัพยากรครั้งล่าสุด
5 ความยาวเนื้อหา:ไม่มี
ความยาวเป็นไบต์ของข้อมูลที่ส่งคืน เบราว์เซอร์ใช้ค่านี้เพื่อรายงานเวลาดาวน์โหลดโดยประมาณสำหรับไฟล์
6 ชุดคุกกี้:สตริง
ตั้งค่าคุกกี้ที่ส่งผ่าน สตริง