django (22) 썸네일형 리스트형 DRF - 소셜 로그인 -2(Naver Login) 지난 1편에서는 Callback 응답 정보를 올바르게 받아오는 것까지 작성을 했었습니다. 이번 2편에서는 NaverCallbackAPIView 를 수정해서 회원가입, 로그인까지 가능하도록 만들어보겠습니다. 목차 1. views.py 2. NaverCallbackAPIView 3. usls.py 1. views.py 지난 1편에서 NaverCallbackAPIView 를 만들고 실행까지 시켰었습니다. 출력이 try 문을 통해 "성공"이 출력 됐었는데, 확인을 못하신 분들은 다시 한번 실행해서 확인해보시기 바랍니다. 이번 2편에서는 전체 view.py 파일과 urls.py 파일을 수정합니다. 먼저 전체 수정된 파일들을 확인하신 후 각 파트별로 어떻게 되어 있는지 설명하도록 하겠습니다. *NaverLoginA.. DRF - 소셜 로그인 - 1(Naver Login) 안드로이드 어플을 만드는 과정에서 Naver Login 기능이 필요했습니다. 하지만 테스트 환경에서 DRF로 네이버 소셜로그인을 서술한 글이 없어 여러가지 글들을 참고해 기능을 만들어보았습니다. *Project에서는 결국 소셜로그인 기능을 네이티브로 구현하기로 했습니다. 여기서 서술하는 방법은 웹, 모바일 웹 등에서 사용할 수 있는 방법이라고 생각됩니다. 테스트 환경에서 DRF 에서 Naver Login이 가능하도록 설정하는 방법에 대해 작성해보도록 하겠습니다. 목차 1. 네이버 로그인 API 등록 2. settings.py 3. views.py 4. 실행해보기 1. 네이버 로그인 API 등록 네이버 로그인 API 를 사용하기 위해서는 우선적으로 "Naver Developers"에서 어플리케이션을 등록해.. [Docker] VScode 에서 도커로 Django(장고)실행 1. requirements.txt 장고에서 Project를 진행할 때, 필요한 패키지를 requirements.txt 파일로 만들어 놓고, pip를 이용해 패키지들을 설치합니다. 이 방법은 패키지를 한번에 설치하는데 편리하고, git 등에서 공동 작업을 할 때 같은 환경을 구성하는데 유용합니다. pip freeze > requirements.txt 진행 중인 프로젝트 폴더 내에서 다음 명령어를 실행하면 파일이 requirements.txt 생성됩니다. 우선 진행하고 있는 프로젝트가 없다는 가정 하에 requirements.txt 파일을 만들어 보겠습니다. 이 방법에 있어서 VScode에서 Ubuntu를 실행해서 만드는 방법과 직접 Window에서 파일을 만드는 방법이 있습니다. 여기서는 Ubuntu를 .. [# DRF Project_User] 5. Updating Users(사용자 정보 수정) Django Rest Framework 앞서 우리는 회원가입 기능, 로그인하는 기능을 만들었습니다. 사용자들에게 있어서 회원가입을 하고 로그인을 한 다음에는 어떤 기능이 필요할까요? 만약 사용자가 정보를 잘못 입력해서 가입을 했다면 어떻게 해야할까요? 우선 사용자가 정보를 잘못 입력했는지 확인이 필요합니다. 첫번째로 만들어 볼 기능은 "내 정보 확인" 기능입니다. 보통 사이트에 들어가면 있는 "내 정보" 페이지와 같은 기능을 합니다. 두번째로 만들어 볼 기능은 확인된 잘못 입력한 정보를 수정하는 기능입니다. "내 정보" 페이지에서 정보를 고친 후 "저장하기"를 누르면 실행되는 기능입니다. 위의 두 가지 기능을 차근차근 만들어보도록 하겠습니다. 목차 1. serializers.py 2. views.py 3.. [# python] 속성을 추가하고 속성값을 바꾸는 Setattr Python setattr(object, attribute_name, property) setattr(객체, 속성명, 속성값) Setattr은 정의된 속성값을 바꾸거나 새롭게 속성을 추가할 때 사용합니다. 아래 예시를 보시면 이해하시기 편하실 겁니다. 우선 class로 여러 속성을 가진 SoccerPlayer를 생성하겠습니다. class SoccerPlayer: name = 'Messi' age = 34 height = '169cm' place_of_brith = 'Argentina' team = 'Barcelona' position = 'Forward' 다음으로 SoccerPlayer를 player1에 할당하겠습니다. 그리고 각 속성에 접근해 속성값을 출력하도록 하겠습니다. player1 = Socce.. [# DRF Project_User] 4. User Login(로그인 기능) Django Rest Framework Part. 4 이번 파트에서는 로그인 기능을 만들어보도록 하겠습니다. 목차 1. serializers.py 2. views.py 3. urls.py 4. 로그인 시도 5. exceptions.py 6. settings.py 7. renderers.py 1. serializers.py 로그인 기능을 만들기 위해서 첫번째로 serializer를 먼저 만들어줘야 합니다. 먼저 authentication/api/serializers.py 파일을 열고 몇몇 모듈을 import 해줍니다. + from django.contrib.auth import authenticate + from django.utils import timezone from rest_framework imp.. ImageField 사용 방법(Upload Image) Django Rest Framework ImageField를 사용하는 방법에 대해서 알아보도록 하겠습니다. 목차 1. Models.py 2. Settings.py 3. Urls.py 4. Serializers.py 5. POSTMAN으로 전송 1. Models.py 모델에 ImageField를 만듭니다. brand_logo = models.ImageField(default='media/Ryan.png', upload_to="%Y/%m/%d") default : brand_logo를 설정하지 않으면 기본으로 업로드 되어 있는 파일을 사용합니다. upload_to : 이미지를 업로드 할 때 저장되는 경로를 지정합니다. "%Y/%m/%d" 의 경우 현재 날짜를 사용합니다. 2. Settings.py 프로젝트의.. DRF - 중첩데이터(nested data) 받는 방법(NestedSerializerMixin) Django Rest Framework ForeignKey(이하 Fk) 혹은 ManyToMany로 연결된 상태의 모델들을 Get 방식으로는 중첩된 데이터를 받고, POST 혹은 UPDATE 시에는 PrimaryKey(이하 Pk)로만 보내는 방식에 대해 써보고자 합니다. POST와 UPDATE 때는 참조되는 테이블의 정보를 생성하거나 수정할 수 없습니다. 즉, 이 방식은 이미 있는 참조데이터를 POST, UPDATE할 때 참조위치를 변경하는 정도로 사용됩니다. 글로만 이해가 안되시는 분들을 위해 사진으로 먼저 보여드리고 진행하도록 하겠습니다. 다음과 같이 하는 이유는 이미 정해져있는 B 테이블의 요소를 참조해 Get할 때 B 테이블의 요소들을 보여주고, Post나 Update할 때는 단순히 참조만 해서 이.. AbstractUser를 이용한 Custom User Field 확장 방법 Django AbstractUser를 이용한 Custom User Field 확장 방법 다른 여러 블로그 등을 찾아보았지만 장고를 이제 막 시작한 나한테는 설명을 이해하기가 쉽지 않았다. 아래 내용은 장고의 User 모델을 사용하면서 User Field 확장을 쉽게 하는 법을 설명한다. 해당 내용은 장고의 공식 문서를 참고해서 작성하였다. 조건은 현재 CreateView를 통해 UserCreateView를 생성했다는 가정 하에 작성한다. 1) 새로운 app 생성 User의 Field를 관리할 앱을 생성한다. python manage.py startapp account 2) models.py 작성 User 필드에 추가할 내용을 작성한다. # account/models.py from django.db imp.. [# DRF Project_User] 3. Registering New User(회원가입 기능) Django Rest Framework Part.3 지금까지 만든 User Model에 새로운 User를 등록하는 기능을 만들어보도록 하겠습니다. 목차 1. serializers.py 2. views.py 3. urls.py 4. renderers.py 5. views.py 1. serializers.py 처음 해야할 부분은 serializers.py 파일을 만들어 주는 것입니다. serializer는 간단하게 말하자면 모델의 내용을 create하거나 update할 때, 그 내용을 직렬화하는 기능을 수행합니다. 먼저 serializers.py, views.py 처럼 기능을 갖는 파일들을 api 폴더를 만들어 한 곳에 모아주도록 하겠습니다. 저는 test.py 파일을 삭제하고, authentication .. 이전 1 2 3 다음