Python: Simple HTTP Server With CGI Scripts Enabled
This article takes us through how to get Python code running as a CGI script on a web server. Check it out!
Join the DZone community and get the full member experience.
Join For FreeIf you want to experiment some python code as CGI script to serve by a HTTP server, you can get started by these steps:
- Create a
cgi-bin
directory. - Ready!
No, really, it's that simple! Try these CGI scripts out.
Example 1: cgi-bin/hello.py
#!/usr/bin/env python3
localvars_table = '<table>'
for x in dir():
localvars_table += '<tr><td>%s</td></tr>' % x
localvars_table += '</table>'
print("Content-type: text/html")
print("")
print("""<html><body>
<p>Hello World! Your custom CGI script is working. Here are your current Python local variables.</p>
%s
<p>NOTE: If you want to write useful CGI script, try the Python 'cgi' module. See cgitest.py script.</p>
</body></html>""" % (localvars_table))
To test and run this, you simply invoke these couple commands:
bash> chmod a+x cgi-bin/hello.py
bash> python3 -m http.server --cgi
You may now test it on your browser with http://localhost:8000/cgi-bin/hello.py. Hit CTRL+C
to stop the server.
If you want to do more with fancy CGI scripts, try the Python's cgi
module. Here is another example.
Example 2: cgi-bin/cgitest.py
#!/usr/bin/env python3
import cgi
cgi.test()
Again chmod
your cgitest.py
script and visit http://localhost:8000/cgi-bin/cgitest.py. You will see all the HTTP related data as expected when working with a CGI script. See https://docs.python.org/3/library/cgi.html for more details.
Published at DZone with permission of Zemian Deng, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.
Comments