D
Django Python
@Django_pythonl6.9K подп.
2.3Kпросмотров
34.0%от подписчиков
11 сентября 2025 г.
📷 ФотоScore: 2.6K
🔥 Как я пишу Django views Автор предлагает использовать базовый класс Django View вместо generic class-based views (CBV) или function-based views (FBV). Такой подход даёт простоту и гибкость при работе с HTTP-запросами. Отказ от сложных миксинов и использование понятных вспомогательных методов делает код более читаемым и сопровождаемым, снижая когнитивную нагрузку на разработчика. Ключевые идеи - В Django есть два популярных способа писать views: FBV (функции) и CBV (классы, включая generic views). - Generic CBV часто содержат слишком много "магии": базовые классы, миксины, переопределяемые методы — их трудно держать в голове. - FBV наглядны, но при усложнении логики код превращается в большие конструкции if request.method == .... - Автор выбирает компромисс: использовать базовый класс View. - Код остаётся простым. - Логика neatly разделяется по методам (get, post и др.). - Неподдерживаемые методы автоматически возвращают 405 (Method Not Allowed). Пример Вместо функции с if request.method: class CommentFormView(View): def get(self, request, post_id, *args, **kwargs): post = get_object_or_404(Post, pk=post_id) form = CommentForm() return TemplateResponse(request, "form.html", {"form": form, "post": post}) def post(self, request, post_id, *args, **kwargs): post = get_object_or_404(Post, pk=post_id) form = CommentForm(data=request.POST) if form.is_valid(): comment = form.save(commit=False) comment.post = post comment.save() return redirect(post) return TemplateResponse(request, "form.html", {"form": form, "post": post}) 👉 Источник: https://loopwerk.io/articles/2025/django-views/
2.3K
просмотров
1746
символов
Нет
эмодзи
Да
медиа

Другие посты @Django_pythonl

Все посты канала →