Django views best practice: явный или неявный контекст?

Мне интересно, есть ли "лучшее" решение между явным определением контекста и неявным использованием параметра locals() при рендеринге представления.

Первоначальный способ заключается в "объявлении" каждой переменной для использования в контексте представления, благодаря словарю, но Django предлагает некоторые сокращения, а также возможность учитывать все переменные, определенные в представлении, как часть контекста.

Есть ли различия между обоими вариантами (контекстная переменная, определенная в dict, и 'locals()'), и является ли один из них "лучше" (и почему?)?

Btw (вспомогательный вопрос): Я совсем новичок в Django и никогда не использовал return HttpResponse(...), а всегда return render(...), я не прав?

Использование

locals() является антипаттерном. IMO вы всегда должны определять, что вы хотите передать в шаблон. Если вы передаете locals(), вы также можете перезаписать context_variable

Загляните в дзен питона: https://www.python.org/dev/peps/pep-0020/

Explicit is better than implicit.

Функция Render является своего рода "ярлыком" для HttpResponse, render_to_string, (https://docs.djangoproject.com/en/4.0/topics/http/shortcuts/#render), так что использовать ее - благое дело :)

Вернуться на верх