On Wed, 2008-04-30 at 11:02 -0500, Victor Subervi wrote: > Hi; > I have the following code which produces a file every time I need to > display an image from MySQL. What garbage! Surely, python is capable > of better than this, but the last time I asked for help on it, I got > no responses. Is this only possible with custom classes? Please, give > me some guidance here! > try: > > w += 1 > > getpic = "getpic" + str(w) + ".py" > > try: > > os.remove(getpic) > > except: > > pass > > code = """ > > #!/usr/local/bin/python > > import cgitb; cgitb.enable() > > import MySQLdb > > import cgi > > import sys,os > > sys.path.append(os.getcwd()) > > from login import login > > user, passwd, db, host = login() > > form = cgi.FieldStorage() > > picid = int(form["id"].value) > > x = int(form["x"].value) > > pics = > {1:'pic1',2:'pic1_thumb',3:'pic2',4:'pic2_thumb',5:'pic3',6:'pic3_thumb',7:'pic4',8:'pic4_thumb',\ > > 9:'pic5',10:'pic5_thumb',11:'pic6',12:'pic6_thumb'} > > pic = pics[x] > > print 'Content-Type: text/html' > > db = MySQLdb.connect(host=host, user=user, passwd=passwd, db=db) > > cursor= db.cursor() > > sql = "select " + pic + " from products where id='" + str(picid) + > "';" > > cursor.execute(sql) > > content = cursor.fetchall()[0][0].tostring() > > cursor.close() > > print 'Content-Type: image/jpeg' > > print > > print content > > """ > > script = open(getpic, "w") > > script.write(code) > > print '<td><input type="hidden" name="%s"' % str(x), ' value="%s">' > % pic > > print '<img src="%s?id=%d&x=%d"><br /><br /></td>\n' % (getpic, d, > y) > > > TIA, > Victor
Victor, Once again, you've posted code that doesn't work. Your outer try block is never terminated, and w is never initialized (so will raise an exception inside your try block, which you probably won't see, if you catch all exceptions. Generally speaking, unless you know what you're trying to catch, it's better to leave off the try/except block, *especially* during development. Stack traces are full of good information. Second, you never initialize w, which causes the following problem. $ python Python 2.3.4 (#1, Nov 20 2007, 15:18:15) [GCC 3.4.6 20060404 (Red Hat 3.4.6-9)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> w += 1 Traceback (most recent call last): File "<stdin>", line 1, in ? NameError: name 'w' is not defined >>> Third, double-spacing your code makes it difficult to read. Take out blank lines, unless they add contextual hints which improve readability. Post working code, and I'll answer your actual question. Cheers, Cliff > -- Oook, J. Cliff Dyer Carolina Digital Library and Archives UNC Chapel Hill -- http://mail.python.org/mailman/listinfo/python-list