Расскажи про основные классы в Django
Python
Junior
Без компании
Расскажи про основные классы в Django
Ответы
Django использует несколько ключевых классов для работы с базами данных, запросами и представлениями:
- **Model** – базовый класс для создания моделей БД. Определяет структуру таблиц и их связи:
```
from django.db import models
class User(models.Model):
name = models.CharField(max_length=100)
email = models.EmailField(unique=True)
```
- **View** – класс для обработки HTTP-запросов и возврата ответов. Может быть на основе функций или классов (CBV):
```
from django.views import View
class UserView(View):
def get(self, request):
return HttpResponse("User list")
```
- **Form/ModelForm** – классы для работы с формами и валидации данных:
```
from django import forms
class UserForm(forms.ModelForm):
class Meta:
model = User
fields = ['name', 'email']
```
- **QuerySet** – интерфейс для построения запросов к БД. Позволяет фильтровать, сортировать и агрегировать данные:
```
users = User.objects.filter(email__contains='@example.com')
```
- **Middleware** – классы для обработки запросов/ответов на уровне middleware.
Также важны: **Template** (шаблоны), **Serializer** (DRF), **Admin** (админка). Эти классы образуют основу MVC-архитектуры Django.