Можно ли создать простой сайт на 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, так как они значительно упрощают разработку.
<a href="https://pypi.org/project/legacy-cgi/" rel="nofollow">https://pypi.org/project/legacy-cgi/</a>
Да без проблем, просто тебе кучу всегда надо будет самим написать, т.е. тупо потратить кучу времени на то что уже дано сделано. Ну и для сайта визитки не нужен ЯП, достаточно просто веб сервера
Похожие вопросы