python è un linguaggio di scripting che ha bisogno di un "esecutore" che quando lanci lo script esegue i compiti da te assegnati nello script. uno di questi compiti può essere formattare pagine html esattamente come fa php
html è un linguaggio di markup language, quindi un linguaggio di descrizione (secondo elementi di markup prestabiliti da uno standard) degli elementi visualizzabili da una pagina nel tuo browser. Ha bisogno di un server http che riceve le tue richieste ed invia al tuo browser i documenti html (dinamici o statici) che corrispondono alle tue richieste.
dentro un server http puoi far correre un "esecutore" python esattamente come ne corre uno php ed usare python per formattare l'html delle tue pagine al posto di php... ho paura che però ti accorgerai di quanto nel tempo php si sia evoluto e sia molto più commentato e semplice per questo scopo in confronto a quello che si può trovare di già pronto in python
php nasce per lavorare con le stringhe ed una pagina html dinamica è solo un insieme di stringhe di testo... python nasce più general purpose quindi ha un uso delle stringhe un po' più gerarchico e "inquadrato" di php, per questo php è molto più usato per la formattazione dinamica di pagine web
tu, comunque, tramite python puoi tranquillamente formattare una pagina html in maniera dinamica
puoi partire ad esempio da questo link
https://docs.python.org/2/howto/webservers.html, o prova (come ho fatto io) a mettere le parole "python" e "apache" in google... ti si aprirà un mondo
