🧩 7-BO‘LIM: Django, DRF, FastAPI – Framework Specific savollar va javoblar


🔹 Django


1. Django’da signal’lar bilan nima qilgansan?

post_save, pre_save, post_delete signal’lari bilan Profile yaratish, admin notificatsiya, va audit log yozish uchun ishlaganman.

@receiver(post_save, sender=User)
def create_profile(sender, instance, created, **kwargs):
    if created:
        Profile.objects.create(user=instance)

2. Middleware’lar qanday ishlaydi va nima uchun kerak?

class MyCustomMiddleware:
    def __call__(self, request):
        print("Before view")
        response = self.get_response(request)
        print("After view")
        return response

3. Django’da OneToOne, ForeignKey, ManyToMany farqi?

Field Relationship Access
OneToOneField 1:1 .relatedname
ForeignKey Many:1 .model_set
ManyToMany Many:Many .all()

4. select_for_update() qachon ishlatiladi?

with transaction.atomic():
    user = User.objects.select_for_update().get(id=1)
    user.balance -= 100
    user.save()

5. Meta: unique_together vs UniqueConstraint?

class Meta:
    constraints = [
        models.UniqueConstraint(fields=['user', 'course'], name='unique_user_course')
    ]

🔹 DRF (Django REST Framework)


6. Serializer’larda .create() va .update() metodlari qachon kerak?

class UserSerializer(serializers.ModelSerializer):
    def create(self, validated_data):
        password = validated_data.pop("password")
        user = User(**validated_data)
        user.set_password(password)
        user.save()
        return user

7. DRF permission’lari haqida?

class IsOwner(permissions.BasePermission):
    def has_object_permission(self, request, view, obj):
        return obj.user == request.user

8. APIView vs GenericAPIView vs ViewSet farqlari?

Class Use case
APIView full manual control
GenericAPIView mixin bilan ishlaydi
ViewSet RESTful endpointlar uchun

9. @action dekoratori nima?

@action(detail=True, methods=["post"])
def activate(self, request, pk=None):
    ...

10. Filtering, Search, Ordering qanday qo‘shiladi?

class MyViewSet(viewsets.ModelViewSet):
    filter_backends = [DjangoFilterBackend, SearchFilter, OrderingFilter]
    filterset_fields = ['status']
    search_fields = ['title', 'description']
    ordering_fields = ['created_at']

🔹 FastAPI


11. FastAPI’da dependency injection qanday ishlaydi?

def get_db():
    db = Session()
    try:
        yield db
    finally:
        db.close()

@app.get("/users/")
def read_users(db: Session = Depends(get_db)):
    return db.query(User).all()

12. FastAPI’dagi Pydantic modellar va ORM mode?

class User(BaseModel):
    id: int
    name: str

    class Config:
        orm_mode = True

13. Background tasklar qanday qo‘shiladi?

from fastapi import BackgroundTasks

def send_email(email: str):
    ...

@app.post("/register/")
def register_user(email: str, bg: BackgroundTasks):
    bg.add_task(send_email, email)

14. FastAPI + SQLAlchemy + Alembic migratsiyasi haqida?

FastAPI loyihalarida models/, schemas/, routers/ folderlar bilan modular DDD structure afzal.


15. FastAPI vs DRF – qachon qaysi biri?

Criteria DRF FastAPI
Maturity Juda katta Nisbatan yangi
Async support Limited Native async
Performance O‘rtacha Yuqori (Starlette)
ORM support Django ORM only SQLAlchemy / others
Swagger Custom Auto generated, kuchli