Серверную часть можно писать на чем угодно. Какие-то древние сайты писались на Perl, Bash, Tcl и еще бог
знает на чем. С++ тоже поддерживается но с моей точки зрения фиксить баги сложнее и не так оперативно.
Веб-сервер Apache настраивался так что можно было любой "экзешник" использовать как CGI скрипт
(оракловый sqlplus можно было настроить). Ну Python на сервере и так норм работает.
По поводу браузера. Python не поддерживается браузером. Поэтому клиентский скриптинг - отпадает.
Хотя я где-то читал что на заре создания браузеров обсуждалась идея вместо
JS использовать Lisp :) Забавно было бы на это посмотреть. Но... многие
академические идеи на практике не взлетали.
В качестве content-type браузер поддеживает text/plain поэтому можно отдавать плоский текст.
Я так часто делал для отчетов. Поэтому без html/css можно обойтись. Хотя выглядит прозаично.
браузер не понимает код питона. он понимает только html, css, js.
сайт конечно может быть на питоне, но он будет все равно генерировать понятные браузеру сущности динамически (обычно используют готовые фреймворки для создания фронта на питоне. но темплейты все равно надо будет написать)