Django

37일차 어제 문제 해결!

승현0604 2022. 10. 25. 23:57

오늘한일 

1.어제 프로필사진과 백그라운드 사진 static으로 처리못한거 해결하기

 

일단 이것부터 궁금해서 찾아봤는데 다 만들어 놓은거 왜 static파일로 굳이 관리를 하냐에 대해서 찾아봤는데 간단히 요약을 해보자면 

 

Static File(정적파일)

 - 미리 서버에 저장되어 있는 파일로, 저장된 그대로를 사용되는 파일을 말합니다.

   데이터베이스에 저장된 그대로를 보여주는 거죠

 

한마디로 배포를 하기전에 개발자인 내가 원하는 기본적인 setting을 고정값을 넣어놓고 사용자가 그 기본값을 부여받고 웹을 이용하게끔 해주는 정적 파일이라고 생각하면 될것같다. 

한마디로 정리를 하자면 

 

1. 프로젝트에 이미 저장되어져 있는 파일, 개발할 때 이미 준비되어진 파일 = "Static"

2. 웹 서비스 이용자들이 업로드하는 파일 = "Media"

이런느낌으로 생각하면 될듯?

 

그래서 어제 코드는 어떻게 고쳤느냐.. 간단했따. 경로설정은 완벽히 해서 문제는 없었는데 기본 templates에서  코드를 안붙여 넣어준게 큰 원인이였다. 

바로 static을 불러오는 {%load static%}의 위치가 잘못되었기 때문이였따... 저부분을 맨위로 올리고 하니 정상적으로 우리가 원하는 기본 배경이미지와 프로필 사진이 잘 나왔다. 찾아보니까 대부분 개발자들이 저위치에 static을 불러오는 코드를 넣어놓고 부분부분 내가 원하는 값을 얻을때 static경로를 심어줘서 기본이미지나 배경을 깔아주는듯 했따. 어쩃든 해결완료!

이런느낌으로 생각하면 될듯?

 

 2. 아침 테스트 

post맨을 이용해서 get, post를 직접 실행해보고, 새로운 json 딕셔너리값을 넣어서 post요청을 통해 튜터님이 제시해준 경로안에 새로운 게시물을 넣어주는 실습을 시험으로 내주셨다.

이것도 해결~

 

3. django 심화 강의(DRF 튜토리얼 정리)

내일 아침 테스트에 대비하기 위해서 빠르게 강의를들어보았다. (엄청 어렵던데... 그래도 형태는 시리얼라이즈랑 평소에 django 게시물 만들기랑 비슷하긴했다. )

 

여기서 조금 정리할 부분은 시리얼 라이즈는 무엇이며 왜쓰는지이다.

 

시리얼 라이즈란??

REST API를 제공하는 django  aplication에서 API를 요청하는 어플과 JSON데이터를 주고받을 수 있어야하는데 

이를 잘하기 위해서는 DB인스턴스를 JSON데이터로 시리얼라이즈를 할 수 있어야 한다. 

물론 django에서 이 클래스를 제공을 해주는데 그것이 바로 시리얼 라이즈이다. 

 

이 강의에서는 시리얼 라이즈를 사용하는 모델도 따로있었다. 모델은 따로 설정을 해주는데 그 모델에 대한 form을 부여하는것과 마찬가지로 DRF에도 시리얼라이즈 클래스에 대응하는 modelSerializer클래스를 제공을 해준다.

오늘은 이부분에 대한 공부를 하였다.  

from django.forms import modelformset_factory
from rest_framework import serializers
from articles.models import Articles

class ArticleSerializer(serializers.ModelSerializer): 
    class Meta:
        model = Articles
        fields = "__all__"

 

그리고 중간에 get post를 apiview를 통해서 확인을 하고 그 기능들을 구현하는 강의를 듣고 있다가 코드 중간에 세세한부분에 대한 궁금증이 생겨서 이부분에 대한 공부도 진행을 하였다. 

 

serializer = ArticleSerializer(articles, many = True)

바로 이부분이다. 일단 기본적인 베이스로는 articles는 내가 생성한 Article이라는 모델의 객체를 전부다 가져온 변수라고 생각하면 된다. 궁금한부분은 many = true라고 하는데 이부분은 왜 있는걸까...?

 

이부분에 대한 공부도 완료하였다. 

인터넷에 가져온 글 중에 하나인데 다수의 데이터 형태를 시리얼라이즈화 할때 사용하는 용어라고 한다. 한마디로 articles라는 모델의 여러개의 객체들을 시리얼라이즈화를 허락하기 위해서 many = True라는 설정을 해주는 것이다. 

그렇다면 여기서 말하는 시리얼라이즈화라는 무엇이냐? 라는 궁금증도 생기는데 

이건그냥 단순히 frontend로 데이터를 보내기 위해 장고 내부의 복잡한 데이터들을 json/xml 등의 형태로 데이터를 변환해준다고 생각을 하면 된다.

 

이런식으로 이부분에 대한 궁금증은 해결이 났고, 오늘 강의를 들으면서 여러가지 실습을 했는데 다행히 오류없이 게시물 등록, 삭제, 수정 부분까지 모두 오류없이 해결할 수 있었다.