Any practical reason why the swap? Must have taken a lot of effort.
This is part of the broader change from PHP to Python, which you allude to. The simple explanation for that change on CS50's Medium blog was "It’s time."
Switching to Python enabled CS50 to use the microframework Flask for pset6 and pset7. Flask uses Jinja syntax in its templates, which you can read more about here.
However, it is inaccurate to call this a "swap." There is a file of CSS code in the
static directory for both pset6 and pset7, and every file in the
templates directory is indeed an html file. These template files simply leverage Jinja syntax.
A deeper understanding of Flask and MVC in general may also shed light on the reason for this change. This tutorial is a quick and dirty intro to how Flask works.