Performance: MTV pattern mental model
This pattern affects server-side rendering speed and how quickly the browser receives the fully rendered page.
def view(request): data = Model.objects.all() return render(request, 'template.html', {'data': data}) <!-- template.html --> {% for item in data %} <div>{{ item.name }}</div> {% endfor %}
def view(request): data = Model.objects.all() html = '' for item in data: html += f'<div>{item.name}</div>' return HttpResponse(html)
| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| Manual HTML in View | N/A (server-side) | N/A | N/A | [X] Bad |
| Django Template Rendering | N/A (server-side) | N/A | N/A | [OK] Good |
def home(request):
data = {'name': 'Alice'}
return render(request, 'home.html', data)def show(request):
user = User.objects.get(id=1)
return render('profile.html', {'user': user})Pass the test and this pattern moves unknown