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 Free
If 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
No, really, it's that simple! Try these CGI scripts out.
#!/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.
#!/usr/bin/env python3 import cgi cgi.test()
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.