Я относительно новичок в Python, но в последнее время с ним много чего делаю, и мне это очень нравится.Однако я столкнулся с проблемой / блокировкой со следующим кодом.
import http.server
import socketserver
import glob
import random
class Server(http.server.SimpleHTTPRequestHandler):
def do_GET(self):
self.send_response(200, 'OK')
self.send_header('Content-type', 'html')
self.end_headers()
self.wfile.write(bytes("<html> <head><title> Hello World </title> </head> <body>", 'UTF-8'))
images = glob.glob('*.jpg')
rand = random.randint(0,len(images)-1)
imagestring = "<img src = \"" + images[rand] + "\" height = 1028 width = 786 align = \"right\"/> </body> </html>"
self.wfile.write(bytes(imagestring, 'UTF-8'))
def serve_forever(port):
socketserver.TCPServer(('', port), Server).serve_forever()
if __name__ == "__main__":
Server.serve_forever(8000)
Я пытаюсь сделать здесь случайное изображение из нескольких изображений в каталоге и добавить его в ответ на веб-запрос.,Код работает нормально, но когда я захожу на сервер через браузер, изображение не отображается.HTML-код страницы, как задумано, хотя.Права доступа к файлам - 755. Также я попытался создать файл index.html в методе do_GET.Это тоже не сработало.Я имею в виду, что index.html был сгенерирован нормально, но в ответ на этот раз в браузере ничего не показывалось (даже мир приветствия в заголовке).
Я что-то упустил здесь очень просто?Я подумал, стоит ли перегрузить handle_request базового SocketServer.BaseServer, поскольку в документации сказано, что вы никогда не должны переопределять метод handle () BaseHTTPServer, а лучше переопределить соответствующий метод do_ *?