How to set up simple HTTP server in Python 3.5 on Windows 10?

China☆狼群 提交于 2020-01-24 00:50:08

问题


I am using python 3.5 IDLE, windows 10 and edge as browser. I am facing issue while executing following simple code on simple HTTP server. Issue is that it just displays the code after removing the HTML tab instead of showing “ Hello World! This is my first CGI program “. Have I missed anything in setting of environmental variables etc?

Code:

import cgi, cgitb
print ("Content-type:text/html\n\n")
print ('<html>')
print ('<head>')
print ('<title>Hello Word - First CGI Program</title>')
print ('</head>')
print ('<body>')
print ('<h2>Hello World! This is my first CGI program</h2>')
print ('</body>')
print ('</html>')

回答1:


I have been able to get the code you have written working without issue, so perhaps it is an issue in your calling environment.

If you see this section of the cgi docs: https://docs.python.org/3/library/cgi.html then

If it’s installed in the standard cgi-bin directory, it should be possible to send it a request by entering a URL into your browser of the form:

http://yourhostname/cgi-bin/cgi.py?name=Joe+Blow&addr=At+Home

as well as the cgi section of the python HTTP Server docs here: https://docs.python.org/3/library/http.server.html#http.server.CGIHTTPRequestHandler

cgi_directories

This defaults to ['/cgi-bin', '/htbin'] and describes directories to treat as containing CGI scripts.

What we need then is a certain folder structure, as in:

cgi-test
 |
 +-- cgi-bin
    |
    +-- test.py

with test.py containing your code as above.

Now to start the python HTTP Server navigate to your enclosing folder (ie cgi-test) and type in python -m http.server --cgi 8000 and assuming your python executable is on your system path you should get a response like: Serving HTTP on 0.0.0.0 port 8000 ...

Finally navigate using your browser to http://localhost:8000/cgi-bin/test.py to see your rendered page.

Note: cgi-test could be anything, for instance C:\Users\Username\Website, D:\MyServer\ ...

Note2: If I move the test.py file up one level to the cgi-test folder I get a result similar to what you describe (ie I see the code rather than the rendered page)

Note3: I am running on Windows 7 with python 3.4, but it should hopefully be similar enough that you should be able to follow the same procedure.



来源:https://stackoverflow.com/questions/34251987/how-to-set-up-simple-http-server-in-python-3-5-on-windows-10

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!