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
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.