[Tutor] Python CGI Script

Faran faranuddin at gmail.com
Wed Sep 20 13:33:28 CEST 2006


I Have a CGI Script Which is working perfectly when run from the python 
interpreter, i m using the Content-type: 
application/x-www-url-form-encoded , i use it to send data from flash 
apps to python script. i checked the script with content-type: text/html 
, and browsers printed the output perfectly, but when i use the 
application content type, it gives the error, normally , firefox just 
prints everything, so i dont know whats wrong. heres the script, i m 
using the M ySQLdb for the Database Connection. Why isnt it Working?

import MySQLdb as sql
import cgi,cgitb

cgitb.enable()

class Listing:
    def __init__(self):

        form = cgi.FieldStorage()
        self.DBid = form.getvalue("DBid")
        self.tableid = form.getvalue("tableid")
        self.rangeid1 = form.getvalue("StartRange")
        self.rangeid2 = form.getvalue("EndRange")
       
        conn = sql.connect('localhost','root','xxxxxxx',db=self.DBid)
        self.cursor = conn.cursor()
        self.conn = conn
        self.list1 = []
        self.list2 = []
        self.list3 = []
        self.list4 = []
        self.list5 = []
        self.list6 = []
        self.outputstring = ""

    def listquery(self):
        query1 = """SELECT ABC FROM %s limit %s,%s"""\
                      % (self.tableid,self.rangeid1,self.rangeid2)
        query2 = """SELECT DEF FROM %s limit %s,%s"""\
                     % (self.tableid,self.rangeid1,self.rangeid2)
        query3 = """SELECT GHI FROM %s limit %s,%s"""\
                    % (self.tableid,self.rangeid1,self.rangeid2)
        query4 = """SELECT JKL FROM %s limit %s,%s"""\
                    % (self.tableid,self.rangeid1,self.rangeid2)
        query5 = """SELECT MNO FROM %s limit %s,%s"""\
                       % (self.tableid,self.rangeid1,self.rangeid2)
        query6 = """SELECT PQR FROM %s limit %s,%s"""\
                        % (self.tableid,self.rangeid1,self.rangeid2)

        self.list1 = self.queryexecute(query1)
        self.list2 = self.queryexecute(query2)
        self.list3 = self.queryexecute(query3)
        self.list4 = self.queryexecute(query4)
        self.listt5 = self.queryexecute(query5)
        self.list6 = self.queryexecute(query6)

    def queryexecute(self,query):
        templist = []
        self.cursor.execute(query,)
        for a in self.cursor.fetchall():
            templist.extend(a)

        return templist
    def outputappend(self,listtoappend,appname):
        tempstring = ""
        for a in range(0,len(listtoappend)):
            tempstring += appname + str(a+1) + "x" + "=" +\
                          listtoappend[a] + "&"
        return tempstring
   
    def output(self):
       
        self.outputstring += self.outputappend(self.list1,"list1")
        self.outputstring += self.outputappend(self.list2,"list2")
        self.outputstring += self.outputappend(self.list3,"list3")
        self.outputstring += self.outputappend(self.list4,"list4")
        self.outputstring += self.outputappend(self.list5,"list5")
        self.outputstring += self.outputappend(self.list6,"list6")
        print """Content-type: application/x-www-url-form-encoded\n"""
        print """%s""" % (self.outputstring)
       
    def clear(self):
        self.cursor.close()
        self.conn.close()

x = Listing()
x.listquery()
x.output()
x.clear()
       
       



More information about the Tutor mailing list