1. SECRET_KEY를 .env 파일로 관리하는 방법 settings.py에서 SECRET_KEY의 값을 잘라내서 .env 파일에 다음과 같이 붙여넣기 한다. python manage.py runserver를 통해 실행할 수 있다. .gitignore에는 아래와 같이 .env가 포함되어 있다. 민감한 정보가 있는 환경정보들은 모두 .gitignor...
원하는 경로에 프로젝트 폴더 drf_week2 만들기 VSCode에 해당 폴더 열기 가상환경 세팅하기 그러나 프로젝트에서 쓰는 lib와 ver은 다를 수 있기 때문에 가상환경을 만들었다. 가상환경을 켠다. 간혹 환경변수 설정을 잘못해서 가상환경을 켠 후 pip
함수를 꾸며주는 함수 (인자)로 함수를 받고 받은 함수값의 위아래에 새로운 명령을 더해 꾸며진 함수를 리턴한다. 다음 2가지는 모두 같은 결과를 리턴한다. 베이직 전에 실행 ---나는 베이직 펑션--- 베이직 후에 실행 베이직 전에 실행 --나는 베이직 펑션-
Serializer 이용해서 DB 정보를 json 형태로 front에 불러오기. json을 돌려주는 backend를 만든 것. \> front에서는 이 data를 받아서 JS로 읽어서 그려주면 된다. 어떻게 그릴지는 front에서 결정. 한 backend에 모바일앱, 웹 등 다양한 client 가능하다. API 열어두면 (날씨 등처럼) 횟수당 요금을 c...
시리얼라이즈 : Article 모델 -> json 형식으로 바꾸는 것.즉 직렬화. object 형태로 구성된 것을 string으로 단순하게 출력하는 것.디시리얼라이즈 : json 데이터 -> Article 모델html에서는 form-data 형식으로 전달했다.drf는
GET과 POST에서는 별도의 url이 필요 없지만 앞으로는 필요하다. 다음과 같이 추가하면 오류 처리도 매끄럽게 되도록. PUT이 생겼고 수정이 가능하다. 삭제하기
지금까지는 함수형 views를 썼는데 앞으로는 Class형 views를 작성한다. 함수형 views 클래스형 views https://www.django-rest-framework.org/tutorial/3-class-based-views/ 에서 복붙해서 시작해도 괜
JavaScript (JS) front에서 기본적으로 사용하는 언어. 요즘은 JS 자체가 많이 발전해서 jQuery 쓰지 않고 JS를 사용한다. ajax 통신을 위해 Fetch API를 사용한다. https://developer.mozilla.org/ko/docs/W
F12 > Application 탭 > CookiesF12 > Application 탭 > Local Storage쿠키 ; 만료..로컬 : key value only쿠키매번 모든 요청이 실려서 보내진다. 회원정보 등 매번 보내야 하는 것은 쿠키에 쓰는 게 유리.4096
jwt 기능을 완성하기 전에, custom user를 만든다. 유동적으로 만들기 위해. dj 공식문서 참고하여. 자율성이 높은 방식 username 외에 이메일 등으로 로그인도 가능해짐. 필요한 필드 추가 가능. BaseUserManager Manager 클래스가 생긴다. helper 클래스 dj 공식 문서. 내용이 많은데 꼭 읽어보는 것을 추천. h...
모든 항목 변경을 통해MyUser -> User로 변경한다.생년월일을 빼는 등, 커스터마이징을 할 수 있다.
python manage.py startapp articlessettings.py > INSTALLED_APPS에 등록 articles/urls.py를 만든다.users/urls.py에서 복사해서 필요 없는 부분은 삭제하고 필요한 부분을 추가한다.인스타그램 첫 화면을
articles/models.py 부터 만든다.
How to manage static files (e.g. images, JavaScript, CSS) https://docs.djangoproject.com/en/4.1/howto/static-files/ 구글링 'django static' Static 파일 dja
POSTMAN으로 확인해보면 id, title, content, ..., user까지 잘 들어온다. 게시글 전체 리스트에 (내용까지) 모두 받아오는 건 과할 수도 있다. content를 제외하고 받으려면 serializer를 다음과 같이 수정한다. user가
수정 권한 테스트하기 login API에서 다른 id로 로그인하기 받은 access token을 Environments > local > token에 업데이트 (2칸 모두) > 저장 article update에서 수정해보면... "권한이 없습니다." msg가 뜬다.
model을 만들었으니 makemigrations, migrate만든 model을 테스트해보려면 admin에서 테스트해본다.admin에 등록하기
ManyToMany를 쓸 때는 related_name을 설정해주는 게 좋다. user에 있는 default값과 중복을 방지하기 위해 위와 같이 설정하면 user.like_articles로 '좋아요 개수' 구할 수 있다. user.article_set 하면 u
본인이기 때문에 'self' 입력해야 한다. symmetrical은 본인self일 때 해야 하는 특징적인 옵션으로 symmetrical=False는 일방적인 Follow를 의미한다. 예: Instagram makemigrations migrate url을 설계한다
게시글 상세페이지에서 좋아요 : pk가 아니라> 이메일로 표시되게 (실제 front에서 처리할 때는 user 정보가 pk값으로 나오는 게 편리할 수 있다) 댓글이 같이 나오도록 수정한다. 우선 게시글 상세페이지에 쓰이고 있는 Serializer는 ArticleSe
시간 날 때마다 django 공식 문서 꼼꼼히 읽어보는 게 중요하다. 모르는 기능이 있으면 찾아보기. users/urls.py 이제 feed_view를 만든다. users/views.py 작성한 글 확인이 가능하다. users/serializers.py users/models.py users/admin.py POSTMAN
Q를 이용해 쿼리문 쓰는 방법
기존 방식 models -> urls -> views -> templates (또는 postman) 테스트 코드 작성한 코드들이 원하는 값을 내놓는지 확인하는 코드 testisupper (\main\_.TestStringMethods) ... ok 8 reasons to write tests Any bugs are found easily and qu...
*무엇에 관한 테스트코드 만들어야 하는지, 공식문서 참고하기 https://www.django-rest-framework.org/api-guide/testing/ 테스트 대상은 views.py에서 작성한 코드다. (python library나 django의 frame
명령어 python manage.py test python manage.py test users 등도 가능하다. PS C:\Users\gracegoh\Desktop\drf1101> python manage.py test Found 3 test(s). Creating
https://developer.mozilla.org/en-US/docs/Learn/Server-side/Django/Testing 이하로 많은 테스트를 만드는데, 실행할 때마다 매번 setUp도 실행하게 된다. setUp을 매번 하지 않고 1번만 하고 모든 테스트를 쓸 수 있는 방법이 있다.
Grace's age is: 35Rafa's age is: 36
클래스 외부에 있는 isAdult()와내부에 있는 @staticmethod isAdult()는 결과가 같다.가독성 등의 편의를 위해 클래스 내부에 작성할 때 @staticmethod를 쓴다.
로그인 안 한 상태에서 post를 요청하면 error(401)가 제대로 발생하는지 테스트하기. setUp은 아래 2가지 방법 중 택1하면 된다. python manage.py test articles status_code가 401인 것이 확인되었다. \> 로그인 안 된 유저가 post를 시도하면 에러(401)가 발생한다.
article 읽는 방법 (Faker 이용) class ArticleReadTest(APITestCase) 만든다. setUpTestData(cls)라는 @classmethod를 이용해서 dummy data를 만든다. for문 반복할 때마다 새로운 cls.user가 만들어지고 cls.articles.append에 할당(저장)된다. 성능테스트를 할 경우,...
dictionary의 method
모델의 구조로 저장된 글을 불러오려면 Response()에 str이나 dict가 주어져야 한다. articledict와 같이 dict로 만들어서 불러올 수 있는데, 그렇게 일일이 불러오는 걸 대신해서 articledict를 JSON 형태의 str로 만들어주는 게 serializers.