Ответ
Создать веб-приложение на Python без фреймворков можно с помощью модулей из стандартной библиотеки. Это полезно для понимания основ работы веба, но не рекомендуется для production-систем из-за отсутствия многих удобств и средств защиты.
Существует несколько подходов разного уровня абстракции:
1. **`http.server` (Высокоуровневый)**: Простой способ запустить HTTP-сервер. Подходит для простых обработчиков и прототипов.
```python
from http.server import BaseHTTPRequestHandler, HTTPServer
class SimpleHandler(BaseHTTPRequestHandler):
def do_GET(self):
self.send_response(200)
self.send_header('Content-type', 'text/html; charset=utf-8')
self.end_headers()
self.wfile.write(b"
Привет, мир!
") def run(server_class=HTTPServer, handler_class=SimpleHandler, port=8000): server_address = ('', port) httpd = server_class(server_address, handler_class) print(f"Сервер запущен на порту {port}") httpd.serve_forever() run() ``` 2. **`wsgiref` (Стандартный интерфейс)**: Реализация стандарта WSGI (Web Server Gateway Interface), который разделяет сервер и приложение. Это основа большинства Python-фреймворков. ```python from wsgiref.simple_server import make_server # WSGI-приложение def application(environ, start_response): status = '200 OK' headers = [('Content-type', 'text/plain; charset=utf-8')] start_response(status, headers) return [b"Hello, WSGI World!"] with make_server('', 8000, application) as httpd: print("Сервер запущен на порту 8000...") httpd.serve_forever() ``` 3. **`socket` (Низкоуровневый)**: Прямая работа с сокетами. Дает полный контроль, но требует ручной реализации всего HTTP-протокола. ```python import socket server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server_socket.bind(('localhost', 8080)) server_socket.listen(1) print("Сервер слушает порт 8080...") while True: conn, addr = server_socket.accept() request = conn.recv(1024) # Упрощенный ответ, не парсим запрос response = b"HTTP/1.1 200 OKrnContent-Length: 13rnrnHello, Socket!" conn.sendall(response) conn.close() ``` **Вывод**: Использование стандартных библиотек — отличный способ изучить, как веб-серверы работают «под капотом», но для реальных проектов фреймворки (FastAPI, Django, Flask) предоставляют необходимую структуру, безопасность и инструменты для быстрой разработки.Ответ 18+ 🔞
Да ты посмотри, какие тут, блядь, варианты развернулись! Прямо как в магазине, нахуй: от дешёвого разливного пива до коньяка в хрустале. Хочешь понять, как эта штука под капотом работает? Ну тогда давай, разберём, что у нас в стандартной библиотеке валяется, пока не пришли эти ваши фреймворки со своими удобствами и защитами, блядь.
**Первый вариант — `http.server`. Это как на велосипеде с колёсиками, ёпта.**
Ну то есть, для взрослого проекта — пиздец, конечно, но чтобы понять, откуда ноги растут — самое то. Запустил — и у тебя уже сервер пыхтит.
```python
from http.server import BaseHTTPRequestHandler, HTTPServer
class SimpleHandler(BaseHTTPRequestHandler):
def do_GET(self):
self.send_response(200)
self.send_header('Content-type', 'text/html; charset=utf-8')
self.end_headers()
self.wfile.write(b"