我已经创建了一个本地地址http网络服务器,希望能够打开创建HTML网页的HTML网页和python脚本,但我一直收到501错误,因为我无法弄清楚如何让网络服务器正确识别代码。另一个注意事项:我在Windows上进行编码,我没有使用Cygwin(我对Cygwin一无所知,所以如果它是推荐的方法,那么这里有关于如何入门的提示我们将不胜感激。)
无论如何,这就是我所拥有的。
我在C:\中创建了一个名为server_test的文件夹,在这个文件夹里面是我放置所有相关HTML和python文件的地方。我已经在eclipse(C:\ workspace)中在PyDev中编辑我的.py文件,然后复制文件并将它们放在C:\ server_test中。
为了让我的服务器运行,我导航到cmd中的\ server_test,打开python,然后使用HTTPServer,CGIRequestHandler,当前目录,地址127.0.0.1以及我选择的端口(通常为9090)创建一个Web服务器。一旦我完成了这个,我就可以进入我的网络浏览器并输入我的一个HTML页面的地址,它运行得非常好。但是,我目前有一个HTML页面,用于调用python脚本(也位于\ server_test),它将创建另一个HTML页面,但我无法使其工作。
我的HTML代码如下所示:
<html>
<title>Debug Page</title>
<body
<h1>This is a test file. </h1>
<form method=POST action="my_code_2.py">
<P><input type=submit>
</form>
</body></html>
然后我的my_code_2.py&#39;看起来像这样:
#!C:\Python35-32\python.exe
import cgi
import cgitb; cgitb.enable()
print("Content-type: text/html\r\n\r\n")
print('<html>')
print('<h1>')
print('<title>This is a second test.</title>')
print('</h1>')
print('</body')
print('</html>')
从我读过的关于shebang的内容看来,Windows原生似乎不支持它们?那么我怎样才能确保我的计算机知道它应该以Python的形式运行代码?目前,当我按下第一个HTML页面上的按钮时,页面http://127.0.0.1:port/my_code_2.py只是一个白页,上面印有我的python代码。
答案 0 :(得分:0)
尝试在python文件上将扩展名更改为.cgi,看看是否有帮助。如果你在网络服务器上运行python,你可能想要使用像bottle.py或django这样的东西。瓶子更容易学习,但功能更少。