ORM(Object-relational mapping)
Django에서 DB에 접근하는 방식이다. sql을 직접 작성해서 excute 하는 방법이 존재하지만
ex)
import sqlite3 as sql
conn = sql.connect("db_name").cursor
conn.execute("SQL")
이 방식보다는 Django류를 쓴다면 ORM을 사용하는것이 훨씬 편하다.
models.py에 다음과 같은 모델이 정의되어 있다고 가정하면
class OriginImage(models.Model):
user = models.ForeignKey(
settings.AUTH_USER_MODEL,
on_delete=models.CASCADE,
related_name='origin_images'
)
image_data = models.TextField() # base64 encoded image (color)
uploaded_at = models.DateTimeField(default=timezone.now)
def __str__(self):
return f"OriginImage {self.id} uploaded by {self.user.email}"
views.py에서는 아래와 같은 방식으로 OriginImage Model에 user_id 가 같은 이미지만 필터링해서 가져올 수 있다.
def get_queryset(self):
return OriginImage.objects.filter(user_id=self.request.user)
.filter 말고도 사용할 수 있는 옵션은 다음과 같다.
objects.all() : 모든 데이터 출력
objects.filter([optional field]) : [optional field] 만 출력
objects.exclude([optional field]) : [optional field] 제외 출력 (!filter)
objects.get() : 데이터가 1개일 때 출력
objects.first() : 첫번째 데이터 출력
objects.last() : 마지막 데이터 출력
'Python and Data' 카테고리의 다른 글
Permission class와 커스터마이징 (0) | 2025.06.19 |
---|---|
Pytorch로 모델 만들기 간단 정리(CNN-V) (0) | 2023.12.12 |
(CV-7)Various Image Interpolation (1) | 2023.10.14 |
(Python-Django)Django 빠른 습득기-0 (1) | 2023.10.14 |
(CV-6)image transform and DCT-2 and Harr, Gabor Transform (0) | 2023.08.22 |