Sobes.tech
Middle
96
questionbank

Как бы вы описали модель проектирования в Django?

Ответ от нейросети

sobes.tech AI

MVC (Model-View-Controller), но часто описывается как MTV (Model-Template-View).

  • Model - определяет структуру данных, взаимодействует с базой данных.
  • Template - отвечает за представление данных пользователю (HTML, JINJA2).
  • View - обрабатывает запросы, получает данные из Model, передает их в Template для отрисовки и возвращает ответ пользователю.

Отличие от классического MVC: в Django View берет на себя функции Controller, а Template выполняет роль View.

# Пример: views.py (View в терминологии Django)
from django.shortcuts import render
from .models import Product

def product_list(request):
    products = Product.objects.all() # Взаимодействие с Model
    return render(request, 'products/product_list.html', {'products': products}) # Передача данных в Template

# Пример: models.py (Model)
from django.db import models

class Product(models.Model):
    name = models.CharField(max_length=200)
    price = models.DecimalField(max_digits=10, decimal_places=2)
    description = models.TextField()

    def __str__(self):
        return self.name