Junior
103
questionbank
Назовите основные сущности в Django.
Ответ от нейросети
sobes.tech AI
- Проект (Project): Набор настроек и приложений для веб-сайта.
- Приложение (App): Самодостаточный модуль для выполнения определенной задачи или набора взаимосвязанных функций. Содержит модели, представления, URL-адреса и миграции.
- Модели (Models): Определяют структуру данных. Представляют собой классы, которые наследуются от
django.db.models.Modelи каждая переменная в классе представляет поле в таблице базы данных. ActiveRecord-паттерн.// models.py from django.db import models class Product(models.Model): name = models.CharField(max_length=100) price = models.DecimalField(max_digits=10, decimal_places=2) def __str__(self): return self.name - Представления (Views): Функции или классы, которые обрабатывают HTTP-запросы, взаимодействуют с моделями и возвращают HTTP-ответы (обычно в виде HTML-страниц).
// views.py from django.shortcuts import render from .models import Product def product_list(request): products = Product.objects.all() return render(request, 'products/product_list.html', {'products': products}) - Шаблоны (Templates): Файлы, содержащие статический HTML и специальный синтаксис для динамического контента (теги шаблонов и переменные). Используются представлениями для генерации HTTP-ответов.
<!-- products/product_list.html --> <h1>Список товаров</h1> <ul> {% for product in products %} <li>{{ product.name }} - ${{ product.price }}</li> {% endfor %} </ul> - URL-адреса (URLs): Связывают URL-адреса с представлениями. Определяются в файлах
urls.py.// urls.py from django.urls import path from . import views urlpatterns = [ path('products/', views.product_list, name='product_list'), ] - Формы (Forms): Обработка пользовательского ввода. Предоставляют классы для создания HTML-форм, валидации данных и их сохранения в модели.
// forms.py from django import forms from .models import Product class ProductForm(forms.ModelForm): class Meta: model = Product fields = ['name', 'price'] - Миграции (Migrations): Изменения в схеме базы данных, основанные на моделях. Управляются встроенной командой
makemigrationsиmigrate.
Эти сущности работают вместе по MVC-подобному паттерну, где Модели - это данные, Представления - логика обработки запросов, а Шаблоны - слой представления (UI). Django часто описывают как MVT (Model-View-Template).