본문 바로가기

내일 배움 캠프/TIL

TIL) 7주차 3일

 

오늘도 화이팅!

 


스택틱 파일과 미디어 파일

  • 스택틱 파일

웹사이트에는 주로 이미지, 자바스크립트나 css 같은 추가적인 파일이 필요한데, 장고에서는 이런것들을 스택틱 파일이라고 부른다. 즉, 스택틱 파일에 해당하는 것들은 사용자의 요청에 따라 내용이 바뀌는 것이 아닌 요청한것을 그대로 내어주는 것들이다.

 

  • 미디어 파일

사용자가 웹에 올리는 파일

 

  • 스택틱 파일 & 미디어 파일 설정
<settings.py 설정>
STATIC_ROOT = BASE_DIR / "static"
STATIC_URL = '/static/'

MEDIA_ROOT = BASE_DIR / "media"
MEDIA_URL = "/media/"

 


serializer 

views.py에서 class 만들때 유의점

  • serializer 생성 없이 articles = Article.objects.all() 생성후 return Response(articles)하면 오류가 난다.

 

해결 방법 

  • serializers.py를 만든다
from rest_framework import serializers
from articles.models import Article
	
# ModelSerializer 클래스는 Serializer 클래스를 사용하며, create(), update() 등의 기능을 제공합니다.
class ArticleSerializer(serializers.ModelSerializer):
	# Meta 클래스는 어떤 모델을 사용할지 정의하며, 해당 모델에서 어떤 필드를 사용할지 정의합니다.
	# fields의 값을 __all__로 사용하는 경우, 모델의 모든 필드를 사용합니다.
	# 만약, 특정 필드만 사용한다면 fields = ("email", "name", "age", ) 등의 형태로 사용하려는 필드만 적용할 수 있습니다.
	class Meta:
		model = Article
		fields = "__all__"
  • views.py에 아래와 같이 추가해준다
serializer = ArticleSerializer(articles, many=True)
return Response(serializer.data)

 

<참고> serializers.SerializerMethodField()를 통해 필드에 들어오는 값들을 변경해줄 수 있다! 여러 방법이 있으니 참고하자. https://www.django-rest-framework.org/api-guide/fields/#serializermethodfield

 

Serializer fields - Django REST framework

 

www.django-rest-framework.org

 


알고리즘 - 바다코끼리 연산자  :=  

  • 표현식의 결과를 변수에 할당하고, 동시에 반환한다. 즉, 변수 = 표현식을 하고, return 변 기능을 한다.
  • 예시
# 일반적인 코드
a = [1, 2, 3, 4]
n = len(a)
if n > 5:
    print("...")
    

# 바다 코끼리 연산자를 사용한 코드
a = [1, 2, 3, 4]
if (n := len(a)) > 5:
    print("...")

 

'내일 배움 캠프 > TIL' 카테고리의 다른 글

TIL) 7주차 5일  (0) 2023.05.02
TIL) 7주차 4일  (0) 2023.05.01
TIL) 7주차 2일  (0) 2023.04.26
TIL) 7주차 1일  (0) 2023.04.25
TIL) 6주차 5일  (0) 2023.04.24