If templates are produced by python functions I suggest making each component (each box) a function with data as args, then pages will be created by concatenating function calls
— No that's not how stuff works
— I have a view and that renders a template, e.g. "user/home.html"
— And in that template there is {% extends "core/base.html" %} which is my base template
— And then I put e.g. {% block content %} in my base template, which I can then replace with whatever I want it "user/home.html"