[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