Python 3.2.3 and my blank page
Νίκος Γκρ33κ
nikos.gr33k at gmail.com
Sun Mar 31 15:12:03 EDT 2013
Τη Κυριακή, 31 Μαρτίου 2013 9:14:43 μ.μ. UTC+3, ο χρήστης ru... at yahoo.com έγραψε:
> On 03/31/2013 08:03 AM, Νίκος Γκρ33κ wrote:
>
> > Hello all,
>
> >
>
> > i need some help
>
> > i recently changes pythoon 2.6 code => python 3.2.3 but my script although not producing any errors now doesnt display anything else but a blank page at htp://superhost.gr
>
> > can you help?
>
> >
>
> > I tried MySQLdb, pymysql, oursql, but nothing happens.
>
> > i still get a blank page. I dont know what else to try since i see no error.
>
>
>
> When I look at your page and do a "show source" in my browser
>
> it shows me the following:
>
>
>
> <!--: spam
>
> Content-Type: text/html
>
>
>
> <body bgcolor="#f0f0f8"><font color="#f0f0f8" size="-5"> -->
>
> <body bgcolor="#f0f0f8"><font color="#f0f0f8" size="-5"> --> -->
>
> </font> </font> </font> </script> </object> </blockquote> </pre>
>
> </table> </table> </table> </table> </table> </font> </font> </font>
>
>
>
> One obvious error is that you are writing html text before the
>
> "Content-Type: text/html" line. And whatever code is supposed
>
> to create the content is not getting run.
>
>
>
> > can anyone suggest anything?
>
>
>
> It is hard to help you because there is no code to look at.
>
> Also, I looked at your web site a couple days ago after you
>
> said you were getting a blank page, but I got a traceback
>
> page. I realize your are working on the problem and changing
>
> things but nobody wants to spend time looking for a problem,
>
> only to find out you've changed the code and their time was
>
> wasted.
>
>
>
> Also, your requests for help are spread out over multiple
>
> threads making it hard for anyone to figure out what you've
>
> already tried and what the current state of your code and
>
> problems are.
>
>
>
> I haven't used MySql so I can't offer any specific help regarding
>
> that, but I can say how I would try to attack your problem if it
>
> were my problem.
>
>
>
> First, Python 2 and Python 3 are two different languages. Code
>
> written for Python 2 will not run under Python 3 (in general)
>
> unless it is changed. So first, are you sure that the database
>
> connector (dbi module) runs under Python 3? Are you sure it is
>
> installed properly?
>
>
>
> To answer this question definitively you can write a simple
>
> Python program to import the dbi module, open a connection to
>
> your database and execute a simple query.
>
>
>
> Once you are sure you can access the database with Python 3
>
> code, next is your cgi script code.
>
>
>
> Try running your cgi script interactively.
>
>
>
> But when you do this, remember that the environment that your
>
> script sees is different when you run it interactively than
>
> when Apache runs your script. When Apache runs your script
>
> it might be using a different userid (which can affect what
>
> files your script can open), there different environment variables
>
> (like REMOTE_HOST which will be missing when you run interactively).
>
>
>
> You can see the environment that exists when Apache is running
>
> your script by creating a cgi script like:
>
>
>
> ------------
>
> #!/bin/env python3
>
> import cgi, os, sys
>
>
>
> print("Content-type: text/html\n")
>
> print("""\
>
> <!DOCTYPE html
>
> PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
>
> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
>
> <html xmlns="http://www.w3.org/1999/xhtml" lang="en-US" xml:lang="en-US">
>
> <head>
>
> <title>Python CGI Environment</title>
>
> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
>
> </head>
>
> <body>
>
> <h2>Python CGI Environment</h2>
>
> """)
>
> print("Python %s<br>" % sys.version)
>
> print("Current directory: %s<br><br>" % os.getcwd())
>
> print("Environment Variables:<br>")
>
> for k in sorted(os.environ.keys()):
>
> print(" %s: %s<br>" % (k, cgi.escape(os.environ[k])))
>
>
>
> print("</body></html>")
>
> ------------
>
>
>
> Open that cgi script in your browser. You can also run it
>
> interactively and you'll see many differences with what
>
> you see in your browser.
>
>
>
> When you run your failing cgi script interactively, you can
>
> give it an argument that is the url of the cgi script. For
>
> example, if you do:
>
>
>
> cd ~me/public_html/cgi_bin/
>
> python3 myscript.py 'http://superhost.gr/myscript.cgi'
>
>
>
> the cgi module will parse the url argument and setup the right
>
> values for the QUERY_STRING environment value that Apache would
>
> normally set up.
>
>
>
> There may be other problems resulting from the different interactive
>
> environment. If I recall, at one point you were having an error
>
> because REMOTE_ADDR was not present in the interactive environment.
>
>
>
> Perhaps the best way to deal with that is to modify your code.
>
> Foe example replace
>
>
>
> host = socket.gethostbyaddr( os.environ['REMOTE_ADDR'] )[0]
>
>
>
> with
>
> try:
>
> host = socket.gethostbyaddr( os.environ['REMOTE_ADDR'] )[0]
>
> except KeyError:
>
> host = 'not available'
>
>
>
> Then your script will be able to run interactively and you can
>
> continue debugging the real problems in it. Of course there
>
> may be other issue you have to fix as well but find and fix
>
> them one at a time.
>
>
>
> Add print statements to your code to find out where things are
>
> going wrong. Don't trust your own thinking about the code!
>
> If you think a variable should be 3 at some point in the code,
>
> print it out and verify it!
>
>
>
> After you get the program to generate html that looks ok, comment
>
> out your debugging print statements (so that only html is printed),
>
> redirect the html output into a file, them open the file in your
>
> browser and see if it looks ok. If not, modify the code until
>
> it does.
>
>
>
> After you've got the script producing good output interactively
>
> see if works from Apache as cgi script. If not, it should be
>
> much easier now to find the problem since most of the other
>
> problems have been fixed.
>
>
>
>
>
> > I can even provide host:port user & pass for someone willing to take a look from the inside.
>
>
>
> Sorry, but I don't use MySql so I probably wouldn't be much help.
>
>
>
> You might consider posting (and updating when you change it!!) your
>
> code to some public place on the internet like http://pastebin.com
>
> so that anyone who wants to try helping you has some code to look
>
> at. Be sure to remove any userids and passwords in your code
>
> before posting it publicly. And please don't post it to this
>
> list because it is too big.
Firsly, thank you for your willing to help me.
i wrote, uploaded an chmoded test.py and you can see the cgi enviromental table here: http://superhost.gr/cgi-bin/test.py
All values seem okey, so it really isnt somehting wrong with the cgi enviroment.
Also i chnagen the host line to what you suggestes so interactive prompts will not give errors.
Please take a look the values to see if something not look ok and i 'am about to create another trest script to check if i can pefrom a simple mysql query with python 3.2.3 just to make sure the MySQLdb connector work ok with 3.x
More information about the Python-list
mailing list