Http.server это стандартная библиотека Pyton3, реализующая функции веб-сервера. Интерпретатор Python с ключём -m позволяет запускать библиотечный модуль как процесс. Запустим библиотеку как веб-сервер.
Создайте папку для сервера, например www в своём рабочем каталоге, поместите туда файл favicon.ico и index.html. Http.server (веб-сервер) поддерживает структуру каталогов. Можно создать подпапки. Перейдите в папку www и запускайте сервер:
dior@debian:~/www$ python3 -m http.server -b 192.168.1.12 8080 Serving HTTP on 192.168.1.12 port 8080 (http://192.168.1.12:8080/) ... 192.168.1.19 - - [06/Mar/2020 22:40:18] "GET / HTTP/1.1" 200 - 192.168.1.19 - - [06/Mar/2020 22:40:18] "GET /css/main.css HTTP/1.1" 200 - 192.168.1.19 - - [06/Mar/2020 22:40:18] "GET /js/flame.js HTTP/1.1" 200 - 192.168.1.19 - - [06/Mar/2020 22:40:18] "GET /favicon.ico HTTP/1.1" 200 -
Если в папке запуска сервера нет файла index.html вы получите файловый сервер.
Для экспериментов предлагаем наши файлы веб страницы index.html (пути указаны относительно папки www в которой запущен сервер):
index.html
<HTML> <HEAD> <META charset="utf-8" /> <LINK href="/css/main.css" rel="stylesheet" /> </HEAD> <BODY id="body"> <H1>Привет мир!</H1> <SCRIPT src="/js/flame.js" type="text/javascript"></SCRIPT> </BODY> </HTML>
Важно: для этого сервера все относительные пути к файлам, указанным в html файле считаются относительными корня сервера (в нашем случае папка www).
/css/main.css
body{ font-size: 1000%; text-align: center; background-color: midnightblue; color: moccasin; text-shadow: red -6px 6px 8px; }
/js/flame.js
i=0; id=1; j=0; jd=1; k=0; kd=1; setInterval("animate()", 80); function animate(){ body.style.textShadow = i+'px '+j+'px '+k+'px red' i=i+id; j=j+jd; k=k+kd; if (i>23) id=-1; if (i<-27) id=1; if (j>19) jd=-1; if (j<-17) jd=1; if (k>31) kd=-1; if (k<13) kd=1; }
И, вы получитe результат:
Посмотрим параметры запуска этого веб-сервера:
python3 -m http.server -h usage: server.py [-h] [--cgi] [--bind ADDRESS] [--directory DIRECTORY] [port] positional arguments: port Specify alternate port [default: 8000] optional arguments: -h, --help show this help message and exit --cgi Run as CGI Server --bind ADDRESS, -b ADDRESS Specify alternate bind address [default: all interfaces] --directory DIRECTORY, -d DIRECTORY Specify alternative directory [default:current directory]