작성
·
148
0
model.py를 보면 Song클래스가 정의되었는데 데이터가 어디서 불러와 졌는지를 잘 모르겠습니다ㅠ 도움 부탁드립니다.
from __future__ import annotations
from datetime import date
from typing import Dict
from urllib.parse import quote
from django.db import models
from django.utils.html import format_html
# 파이썬 3.7부터 지원
# @dataclass
class Song(models.Model): # 장고 모델 아니고 일반 파이썬 클래스!
melon_uid = models.CharField(max_length=20, unique=True)
rank = models.PositiveSmallIntegerField()
album_name = models.CharField(max_length=100)
name = models.CharField(max_length=100)
artist_name = models.CharField(max_length=100)
cover_url = models.URLField()
lyrics = models.TextField()
genre = models.CharField(max_length=100)
release_date = models.DateField()
like_count = models.PositiveIntegerField()
@property
def cover_image_tag(self):
return format_html('<img src="{}" style="width: 50px;">', self.cover_url)
@property
def melon_detail_url(self) -> str:
melon_uid = quote(self.melon_uid)
return f"https://www.melon.com/song/detail.htm?songId={melon_uid}"
@property
def youtube_search_url(self) -> str:
search_query = quote(f"{self.name}, {self.artist_name}")
return f"https://www.youtube.com/results?search_query={search_query}"
@classmethod
def from_dict(cls, data: Dict) -> Song:
return cls(
melon_uid=data.get("곡일련번호"),
rank=int(data.get("순위")),
album_name=data.get("앨범"),
name=data.get("곡명"),
artist_name=data.get("가수"),
cover_url=data.get("커버이미지_주소"),
lyrics=data.get("가사"),
genre=data.get("장르"),
release_date=date.fromisoformat(data.get("발매일")),
like_count=int(data.get("좋아요")),
)
답변 1
0
안녕하세요.
db.sqlite3 데이터베이스는 settings 의 DATABASES 설정을 통해, 디폴트 데이터베이스로서 그 경로가 지정되어있습니다.
장고 모델을 사용한 쿼리셋 등을 통해 SQL 쿼리를 자동 생성/수행하구요. 이때 장고에서 디폴트 데이터베이스로 자동으로 연결을 맺습니다.
아하 감사합니다~!