Skip to main content

Python CGI Programming

Python CGI Programming

Until now we did a lot of stuffs with programming that are not related to web or network. Now it’s time for CGI. As the name suggests, CGI means “Common” gateway interface for everything. CGI is one of the important parts of HTTP (Hyper-Text Transfer Protocol).
It is a set of standards that defines a standard way of passing information or web-user request to an application program & to get data back to forward it to users. This is the exchange of information between web-server & a custom script. When the users requested the web-page the server sends the requested web-page. The web server usually pass the information to all application programs that processes data and sends back an acknowledged message; and this technique of passing data back-&-forth between server & application is the Common Gateway Interface. The current version of CGI is CGI/1.1 & CGI/1.2 is under process.

Browsing

What happens when a user clicks a hyperlink to browse a particular web-page or URL (Uniform Resource Locator).
The steps are:
  • Browser contacts the HTTP web server for demanding the URL
  • Parsing the URL
  • Look for the filename
  • If it finds that file, a request is send back
  • Web browser takes a response from web server
  • As the server response, it either shows the received file or an error message.
It may become possible to set-up an HTTP server because when a certain directory is requested that file is not sent back; instead it is executed as a program and that program’s output is displayed back to your browser.

Configuring CGI

The steps are:
  1. Find out which user is running the Web-server
  2. Check for server configuration to see if you can run the scripts in a particular directory
  3. Check for file’s permission
  4. Make a clear assurance that scripts you made are readable and executable by the web-server user
  5. Make sure the Python-Script’s first line refers to web-server that the interpreter can run
The architecture of CHI is shown below:
architecture of CGI

Python CGI Program Structure

The output of Python CGI script must consist of two sections separated by a blank line. The first part contains the number of headers that describes the client what kind of data is following.
Python code header section looks something like this:
Example:
#!/usr/bin/python
print "Content-Type : text/html"

# then comes the rest hyper-text documents
print "<html>"
print "<head>"
print "<title>My First CGI-Program </title>"
print "<head>"
print "<body>"
print "<h3>This is HTML's Body section </h3>"
print "</body>"
print '</html>'
Save this file as CGI.py. When you will open that saved file, the output becomes:
Output:
This is HTML's Body section
This is a simple Python script that writes its output on STDOUT file i.e. on screen.

Use Of CGI Module

We programmers write CGI scripts in Python, they can add these lines:
import cgitb
cgitb.enable()
The above code triggers special exception handler that will display detailed report in the web-browser in case of occurrence of any error.

HTTP Header

Few are the important lists of HTTP header frequently used in CGI programs. These are:
HTTP headerValue
Content-typetext/html
ExpiresDate
LocationURL
Set-CookieString
Content-lengthN

CGI Environment Variables

Environment VariablesDescription
CONTENT_TYPEdescribes the data-type of the content
HTTP_COOKIEreturns the visitor’s cookie, if one is set
CONTENT_LENGTHIt is available for POST request to define the length of query information
HTTP_USER_AGENTdefines the browser type of the visitor
PATH_INFOdefines the path of CGI script
REMOTE_HOSTdefines the host-name of the visitor
REMOTE_ADDRdefines the IP Address of the visitor
REQUEST_METHODused to make request & the most common methods are – GET and POST

Comments

For Programs Click Here

Popular posts from this blog

Python Lists

Python Lists Dealing with data in a structured format is quiet generous, and this is possible if those data are set accordingly in a specific manner. So, Python provides these data structures named ‘lists’ and ‘tuples’ that are used to organize data in  single set. Python has 6 built-in sequences and among them the most famous are “lists and tuples”. The lists are containers that hold a number of other objects in a given order. It usually puts into practice the sequence protocol and allows programmers to add or remove objects from that sequence. Each element of the sequence is assigned a number i.e. he index and the first index is 0 (zero). This versatile data-type of Python is written in a sequence of list separated by commas between expressions. Creating Lists To build a list, just put a number of expressions in square brackets. The syntax is: Syntax: lst1 = [ ] # lst1 is the name of the list lst2 = [ expression1 , …. , expression_N ] Example: #!/usr/bin/python ls...

C++ Objects and Classes

C++ Object Oriented C++ Objects and Classes In object-oriented programming languages like C++, the data and functions (procedures to manipulate the data) are bundled together as a self-contained unit called an object. A class is an extended concept similar to that of structure in C programming language; this class describes the data properties alone. In C++ programming language, class describes both the properties (data) and behaviors (functions) of objects. Classes are not objects, but they are used to instantiate objects. What is a class? A class is an abstract data type similar to ‘ C structure ‘. Class representation of objects and the sets of operations that can be applied to such objects. Class consists of Data members and methods. Primary purpose of a class is to held data/information. This is achieved with attributes which is also know as data members. The member functions determine the behavior of the class i.e. provide definition for supporting various operations on data held...

C++ Qualifiers and Storage Classes

C++ Qualifiers and Storage Classes Qualifiers and storage class are smaller but important programming concept that helps to make the quality of a variable more accurate for using that variable within the program. In this chapter you will learn about how qualifiers are used with variables and what the roles of different storage classes in C++ are. What is a Qualifier? A qualifier is a token added to a variable which adds an extra  quality , such as specifying volatility or constant-ness to a variable. They act like an adjective for a variable. With or without a qualifier, the variable itself still occupies the same amount of memory, and each bit has the same interpretation or contribution to the state/value. Qualifiers just specify something about how it may be accessed or where it is stored. Three qualifiers are there in C++. These are: const : This is used to define that the type is constant. volatile : his is used to define that the type is volatile. mutable:  applies to non...