編輯:在Simple CGI Server with CGI scripts in different languages擴展的源代碼。
我有結構:(所有的代碼是在結束)
project
├── cgi-bin
│ └── image.py
├── image.png
├── index.html
└── server.py
,我跑./server.py
(或python3 server.py
)
CGI服務器可以爲圖像,而不額外的代碼。您可以嘗試
http://localhost:8000/image.png
或把標籤在HTML(即在index.html
)
< img src="/image.png" >
和運行
http://localhost:8000/index.html
如果您需要動態創建的圖像,然後創建文件夾cgi-bin
與腳本即。 image.py
(在Linux上你必須設置執行屬性chmod +x image.py
)
然後你就可以運行該腳本直接
http://localhost:8000/cgi-bin/image.py
或HTML
< img src="/cgi-bin/image.py" >
server.py
#!/usr/bin/env python3
from http.server import HTTPServer, CGIHTTPRequestHandler
server_address = ("", 8000)
httpd = HTTPServer(server_address, CGIHTTPRequestHandler)
httpd.serve_forever()
的cgi-bin/image.py
#!/usr/bin/env python3
import sys
import os
src = "image.png"
sys.stdout.write("Content-Type: image/png\n")
sys.stdout.write("Content-Length: " + str(os.stat(src).st_size) + "\n")
sys.stdout.write("\n")
sys.stdout.flush()
sys.stdout.buffer.write(open(src, "rb").read())
的index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>Index</title>
</head>
<body>
<h1>image.png</h1>
<img src="/image.png">
<h1>cgi-bin/image.py</h1>
<img src="/cgi-bin/image.py">
</body>
</html>
圖像。PNG
你需要的頭部和數據之間的空行 - 所以你需要兩個'\ N'。你可能需要數據大小/長度的標題。 – furas
@furas它沒有改變任何東西。 –
btw:您不打印到HTML,而是打印到HTTP正文。 – furas