Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Chương trình CGI đầu tiên trong Python


Dưới đây là một liên kết đơn giản, liên kết đến một script CGI tên là hello.py. Tệp này được giữ trong thư mục /var/www/cgi-bin và có nội dung sau. Trước khi chạy chương trình CGI của bạn, hãy chắc chắn bạn đã thay đổi chế độ tệp sử dụng lệnh UNIX chmod 755 hello.py để làm cho tệp có thể thực thi.

Ví dụ

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

Đầu ra

Nếu bạn nhấp vào hello.py, điều này tạo ra đầu ra sau:

Hello Word! This is my first CGI program

Script hello.py này là một script Python đơn giản, ghi đầu ra của nó ra tệp STDOUT, tức là màn hình. Có một tính năng quan trọng và bổ sung là dòng đầu tiên được in Content-type:text/html\r\n\r\n. Dòng này được gửi trả về trình duyệt và nó chỉ định loại nội dung để hiển thị trên màn hình trình duyệt.

Đến đây bạn đã hiểu khái niệm cơ bản của CGI và bạn có thể viết nhiều chương trình CGI phức tạp sử dụng Python. Script này có thể tương tác với bất kỳ hệ thống bên ngoài nào khác để trao đổi thông tin như RDBMS.

HTTP Header

Dòng Content-type:text/html\r\n\r\n là một phần của HTTP header được gửi đến trình duyệt để hiểu nội dung. Tất cả các HTTP header sẽ có dạng sau:

HTTP Field Name: Field Content

Ví dụ

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

Có một vài HTTP header quan trọng khác, bạn sẽ thường sử dụng trong lập trình CGI của mình.

STTHeader & Mô tả
1Content-type:
Một chuỗi MIME định nghĩa định dạng tệp được trả về. Ví dụ: Content-type:text/html
2Expires: Date
Ngày thông tin trở nên không hợp lệ. Được trình duyệt dùng để quyết định khi nào trang cần làm mới. Chuỗi ngày hợp lệ có định dạng 01 Jan 1998 12:00:00 GMT.
3Location: URL
URL được trả về thay vì URL được yêu cầu. Bạn có thể dùng trường này để chuyển hướng yêu cầu đến bất kỳ tệp nào.
4Last-modified: Date
Ngày sửa đổi cuối cùng của tài nguyên.
5Content-length: N
Độ dài, tính bằng byte, của dữ liệu được trả về. Trình duyệt dùng giá trị này để báo cáo thời gian tải xuống ước tính cho tệp.
6Set-Cookie: String
Thiết lập cookie được truyền qua string.