I want to create a little web server. I'm blocking to display an image with the dedicated html block.
There is the code of my web server
from http.server import SimpleHTTPRequestHandler, HTTPServer
import time
import socket
import json
import os
import socketserver
hostName = "127.0.0.1"
serverPort = 8080
class MyServer(SimpleHTTPRequestHandler):
head = """
<head lang="fr">
<title>Title</title>
<meta charset="utf-8">
</head>
"""
navbar = """<nav><a class="navbar-brand" href="#"><img src="my_img.png"></a></nav>"""
def index(self):
print(os.listdir())
# List the directory -> my_img is present
self.send_response(200)
self.send_header("Content-type", "text/html")
self.end_headers()
self.wfile.write(bytes(self.head, "utf-8"))
self.wfile.write(bytes("<body>", "utf-8"))
self.wfile.write(bytes(self.navbar, "utf-8"))
p = """
<div class="container-fluid">
<div class="row">
<div class="col-md-2"></div>
<div class="col-md-8">
<h1>Dashboard</h1>
<h2>Bienvenue !</h2>
<img src="my_img.png">
</div>
</div>
</div>
"""
self.wfile.write(bytes(p, "utf-8"))
self.wfile.write(bytes("</body></html>", "utf-8"))
def do_GET(self):
if self.path == "/":
self.index()
else:
self.send_response(404)
self.send_header("Content-type", "text/html")
self.end_headers()
if __name__ == "__main__":
webServer = HTTPServer((hostName, serverPort), MyServer)
print("Server started http://%s:%s" % (hostName, serverPort))
try:
webServer.serve_forever()
except KeyboardInterrupt:
pass
webServer.server_close()
print("Server stopped.")
So the image is not displayed
On the chrome console debugger :
Failed to load resource: the server responded with a status of 404 (Not Found)
I start the web server with this command :
python3 WebServer.py
In the current directory :
- WebServer.py
- my_img.png