|
Technical Interview Questions
C++ Interview Questions
Php Interview Questions
Xml
Interview Questions
C Interview Questions
.........More
Soft Skills
Communication Skills
Leadership Skills
.........More
|
|
Python Interview Questions and Answers
The classical "Hello World" in python CGI fashion:
#!/usr/bin/env python
print "Content-Type: text/html"
print
print """\
<html>
<body>
<h2>Hello World!
</body>
</html>
"""
To test your setup save it with the .py extension,
upload it to your server as text and make it executable
before trying to run it.
The first line of a python CGI script sets the path
where the python interpreter will be found in the
server. Ask your provider what is the correct one. If it
is wrong the script will fail. Some examples:
#!/usr/bin/python
#!/usr/bin/python2.3
#!/usr/bin/python2.4
It is necessary that the script outputs the HTTP header.
The HTTP header consists of one or more messages
followed by a blank line. If the output of the script is
to be interpreted as HTML then the content type will be
text/html. The blank line signals the end of the header
and is required.
print "Content-Type: text/html"
print
If you change the content type to text/plain the browser
will not interpret the script's output as HTML but as
pure text and you will only see the HTML source. Try it
now to never forget. A page refresh may be necessary for
it to work.
Client versus Server
All python code will be executed at the server only. The
client's agent (for example the browser) will never see
a single line of python. Instead it will only get the
script's output. This is something realy important to
understand.
When programming for the Web you are in a client-server
environment, that is, do not make things like trying to
open a file in the client's computer as if the script
were running there. It isn't.
How to Debugging in python?
Syntax and header errors are hard to catch unless you
have access to the server logs. Syntax error messages
can be seen if the script is run in a local shell before
uploading to the server.
For a nice exceptions report there is the cgitb module.
It will show a traceback inside a context. The default
output is sent to standard output as HTML:
#!/usr/bin/env python
print "Content-Type: text/html"
print
import cgitb; cgitb.enable()
print 1/0
The handler() method can be used to handle only the
catched exceptions:
#!/usr/bin/env python
print "Content-Type: text/html"
print
import cgitb
try:
f = open('non-existent-file.txt', 'r')
except:
cgitb.handler()
There is also the option for a crude approach making the
header "text/plain" and setting the standard error to
standard out:
#!/usr/bin/env python
print "Content-Type: text/plain"
print
import sys
sys.stderr = sys.stdout
f = open('non-existent-file.txt', 'r')
Will output this:
Traceback (most recent call last):
File "/var/www/html/teste/cgi-bin/text_error.py", line
6, in ?
f = open('non-existent-file.txt', 'r')
IOError: [Errno 2] No such file or directory:
'non-existent-file.txt'
Warning: These techniques expose information that can be
used by an attacker. Use it only while
developing/debugging. Once in production disable it.
Page Numbers : 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Have a Question ?
post your questions here. It
will be answered as soon as possible.
Check
HTML Interview
Questions for more HTML Interview Questions with Answers
Check
Job Interview Questions
for more Interview Questions with Answers
|