/
schoolproject
/
offlinewebschollproject
Обзор
Документация
Войти
/
schoolproject
/
offlinewebschollproject
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
start_server.py
69 строк
3 KB
schoolproject
create: app.js, index.html, package.json, server.js, start_server.bat, start_server.py, start_server.sh, styles.css
14 мар 2026, 20:29
Верифицирован
14 мар 2026, 20:29
ea4e370
Код
Авторство
О чём код?
#!/usr/bin/env python3 """ Простой HTTP сервер для запуска офлайн приложения Работает на Python 3.x """ import http.server import socketserver import webbrowser import os import sys PORT = 8000 class MyHTTPRequestHandler(http.server.SimpleHTTPRequestHandler): def end_headers(self): # Добавляем заголовки для правильной работы приложения self.send_header('Cache-Control', 'no-cache, no-store, must-revalidate') self.send_header('Pragma', 'no-cache') self.send_header('Expires', '0') super().end_headers() def main(): # Проверяем наличие Python 3 if sys.version_info[0] < 3: print("Требуется Python 3.x") sys.exit(1) # Меняем рабочую директорию на директорию скрипта os.chdir(os.path.dirname(os.path.abspath(__file__))) # Проверяем наличие index.html if not os.path.exists('index.html'): print("Ошибка: файл index.html не найден!") print("Убедитесь, что вы запускаете скрипт из папки с приложением.") sys.exit(1) Handler = MyHTTPRequestHandler try: with socketserver.TCPServer(("", PORT), Handler) as httpd: url = f"http://localhost:{PORT}" print("=" * 60) print("Сервер запущен!") print(f"Откройте в браузере: {url}") print("=" * 60) print("Для остановки нажмите Ctrl+C") print("=" * 60) # Автоматически открываем браузер try: webbrowser.open(url) except: pass httpd.serve_forever() except OSError as e: if e.errno == 98 or e.errno == 48: # Address already in use print(f"Порт {PORT} уже занят. Попробуйте другой порт.") print("Или закройте другое приложение, использующее этот порт.") else: print(f"Ошибка: {e}") sys.exit(1) except KeyboardInterrupt: print("\n\nСервер остановлен.") sys.exit(0) if __name__ == "__main__": main()