python -m http.server不适用于POST

时间:2019-01-13 21:12:55

标签: python python-3.x

我试图在本地主机上运行我的网页。我正在使用python http.server在本地主机中运行代码。它适用于GET请求,但不适用于POST。

python -m http.server --cgi 8080

显示

“错误代码:501

消息:只能POST到CGI脚本。

错误代码说明:HTTPStatus.NOT_IMPLEMENTED-服务器不支持此操作。”

1 个答案:

答案 0 :(得分:1)

CGI脚本必须位于特殊目录中,例如cgi-bin:

  

仅使用基于目录的CGI

     

cgi_directories¶

     

此默认值为['/ cgi-bin','/ htbin'],并描述要包含CGI脚本的目录。

因此您可以通过以下方式使用它们:

在终端中,运行:python3 -m http.server --cgi 8080

和另一个:

$ cat cgi-bin/foo.py
#!/usr/bin/env python3
import sys
print('200 OK\r\n\r\nfoo')
$ chmod u+x cgi-bin/foo.py
$ curl http://localhost:8080/cgi-bin/foo.py -X POST
foo