Можно ли создать простой сайт на Python без использования фреймворков?

Привет всем! Я долгое время работал с динамическими сайтами на PHP, но сейчас хочу попробовать создать что-то на Python. Я знаком с такими фреймворками, как Django, Flask и FastAPI, но интересует, возможно ли сделать сайт в формате визитки на чистом Python, без использования фреймворков? Например, в PHP я обычно создаю файл index.php, в котором реализую роутинг для нескольких URL и подключаю необходимые файлы. Могу ли я сделать что-то подобное на Python? Существует ли в Python аналог $_SERVER['REQUEST_URI'] и функций include/require()?
  • 27 декабря 2024 г. 23:53
Ответы на вопрос 3
Да, вы можете создать простой сайт на Python без использования фреймворков, используя стандартную библиотеку. Для этого можно использовать модуль `http.server`, который позволяет создать простой HTTP-сервер и обрабатывать запросы.

Вот пример, как вы можете создать очень простой сайт на Python:

1. Создайте файл `server.py` и добавьте в него следующий код:

```python
import http.server
import socketserver
import urllib.parse

PORT = 8000

class MyHandler(http.server.SimpleHTTPRequestHandler):
    def do_GET(self):
        # Получаем запрашиваемый путь
        path = urllib.parse.urlparse(self.path).path
        
        # Различаем страницы по URL
        if path == '/':
            self.send_response(200)
            self.send_header("Content-type", "text/html")
            self.end_headers()
            self.wfile.write(b"<h1>Главная страница</h1>")
        
        elif path == '/about':
            self.send_response(200)
            self.send_header("Content-type", "text/html")
            self.end_headers()
            self.wfile.write(b"<h1>О нас</h1>")
        
        else:
            self.send_response(404)
            self.send_header("Content-type", "text/html")
            self.end_headers()
            self.wfile.write(b"<h1>404 - Страница не найдена</h1>")

# Запускаем сервер
with socketserver.TCPServer(("", PORT), MyHandler) as httpd:
    print(f"Сервер запущен на порту {PORT}")
    httpd.serve_forever()
```

2. Запустите сервер, выполнив команду:

```bash
python server.py
```

Теперь сервер будет слушать на порту 8000. Вы можете открыть браузер и перейти по адресам:
- [http://localhost:8000/](http://localhost:8000/) — вы увидите главную страницу.
- [http://localhost:8000/about](http://localhost:8000/about) — вы увидите страницу "О нас".
- [http://localhost:8000/unknown](http://localhost:8000/unknown) — вы получите 404 страницу.

Что касается аналогов функций PHP:
- В Python нет прямого аналога `$_SERVER['REQUEST_URI']`, но вы можете получить запрашиваемый путь с помощью `self.path` в обработчике запросов.
- Для подключения файлов можно использовать стандартный оператор `import` для подключения модулей, а для включения HTML-кода можно использовать f-строки или другие методы форматирования строк.

Таким образом, вы сможете создать простую веб-страницу на чистом Python. Однако, если вам нужен более сложный функционал, рекомендуется использовать фреймворки, такие как Flask или Django, так как они значительно упрощают разработку.
Да без проблем, просто тебе кучу всегда надо будет самим написать, т.е. тупо потратить кучу времени на то что уже дано сделано. Ну и для сайта визитки не нужен ЯП, достаточно просто веб сервера
Похожие вопросы