본문 바로가기

DRF23

딥러닝 :: 11월 넷째주 WIL13 ■ 개발일지 WIL #13 1. FACTS - Django Rest Framework(DRF) 프로젝트 진행 기능1) 딥러닝 OpenCV를 이용한 이미지 스타일(유화) 처리 서비스 구현 기능2) DRF Serializer를 이용한 게시글 생성 기능 구현 기능3) DRF Serializer를 이용한 댓글 CRUD 기능 구현 기능4) Backend 기능1~3)을 처리할 수 있는 Frontend Javascript api 및 html 템플릿 생성 기능5) AWS EC2와 Docker를 이용한 웹사이트 배포 2. FEELINGS - Django 기본을 탄탄하게 다지는 것이 매우 중요하게 생각된다. Backend를 잘 이해하고 탄탄하게 잘 구성하ㅇ 시간을 많이 절약할 수록 다음 프로젝트에서 Frontend에 투자.. 2022. 11. 29.
Web 개발 :: Django DRF Test Code 활용하기 Django DRF Test Code 활용하기 01. 테스트 코드 - Django에서 startapp을 통해 만들어진 앱에는 test.py라는 파일이 자동으로 생성된다. 이 파일에 임의의 테스트코드를 적고 터미널에서 아래와 같이 입력하면 테스트 결과를 출력해준다. python manage.py test - 임의로 아래와 같이 test.py에 작성하고 위의 명령어를 통해 test하면 결과를 출력해주는 것을 확인할 수 있다. # test.py from django.test import TestCase # Create your tests here. class TestView(TestCase): def test_two_is_three(self): self.assertEqual(2,3) def test_two_i.. 2022. 11. 9.
Web 개발 :: Django rest framework, 추천 시스템 _TIL#46 ■ JITHub 개발일지 46일차 □ TIL(Today I Learned) :: 파이썬 Django Rest Framework, Front-end, 추천서비스 기능 구현 - html 프론트엔드 작업을 할 때 전날과 같이 여전히 버튼을 눌렀을 때 로드하는 데 문제가 있었다. 버튼은 a태그이거나, button으로 구성했었다. 또, 링크는 onclick을 통해 함수를 호출하거나, href를 통해 템플릿을 불러왔다. 버튼01 버튼02 - 실행했을 때 콘솔창을 보면, 새로 페이지를 로드할 때 전혀 변화가 없었고, F5키를 누르거나, 주소창에 url을 다시 입력 후 로드할 때에 동작하게 되었다. 아마도 자바스크립트 문법 또는 템플릿과의 충돌일 가능성이 높은데 정확하게 어떤 부분인지는 확인하지 못했다. 하지만 아래 .. 2022. 11. 8.
파이썬/머신러닝 웹 프로그래밍 :: 11월 첫째주 WIL #10 ■ 개발일지 WIL #10 1. FACTS - Django Rest Framework(DRF) 프로젝트 진행 : Django Rest Framework 강의를 마무리하고 추천서비스 프로젝트를 진행한다. : 추천 서비스 주제는 '사용자가 원하는 노래 리스트를 추천하는 서비스' 이다. : 추천받은 노래는 플레이리스트로 관리할 수 있다. : 이번에는 프론트엔드와 백엔드를 구분하여 json 파일을 serializer를 통해 변형하여 자료를 전달하는 방식으로 진행될 예정이다. - 추천 시스템 : 추천 시스템을 활용한다. 유저기반 협업 필터링/아이템 기반 협업필터링으로 구분하여 사용한다. : 판다스, 넘파이를 통해 추천시스템을 구성할 때 데이터프레임을 활용하고, 사이킷런을 불러와서 코사인 유사도를 사용하였다. 노래.. 2022. 11. 7.
Web 개발 :: Django rest framework, 추천 시스템 _TIL#45 ■ JITHub 개발일지 45일차 □ TIL(Today I Learned) :: django restframework - 추천 리스트 가져오기 추천리스트를 가져오기 위해 ajax 문법을 사용하였다. 이는 for문을 통해 html 템플릿을 반복하기 위해서였다. 잊었던 부분인데 다시 사용해보니 새록새록했다. function songrecommend() { $('#songs-box2').empty() const song_id = 10 $.ajax({ type:"POST", url: "http://127.0.0.1:8000/songs/"+song_id+"/recommend/", data: {}, success: function (response) { let rows = response for (let i = 0.. 2022. 11. 7.
Web 개발 :: 파이썬 Django Rest Framework(14) _ 피드 DRF(Django Rest Framework)(14) _ 피드 01. 프로필 페이지 - 이제 유저가 팔로우하고 있는 사람들의 글들을 볼 수 있는 Feed 화면을 생성해본다. 먼저 urls.py에 사용할 url과 view를 연결해준다. # articles/urls.py urlpatterns = [ ... path('feed/', views.FeedView.as_view(), name='feed_view'), ... ] - Feed는 로그인 되어있을 때 보여주기 위해 permission_classes를 추가해주었다. - 그리고 for문을 이용해서 사용자가 following하고 있는 사람들을 차례로 돌 것이다. 이 때 사용되는 것이 Q objects인데 참고 링크를 확인해본다. (※ 참고 링크) Q obje.. 2022. 11. 7.
Web 개발 :: 파이썬 Django Rest Framework(13) _ 프로필 페이지 DRF(Django Rest Framework)(13) _ 프로필 페이지 01. 프로필 페이지 - 사용자 프로필 페이지를 만들기 위해 정보를 가져오는 기능을 구현해보려고 한다. - 아래와 같이 view에서 사용할 serializer를 먼저 정의해준다. # users/serializers.py class UserProfileSerializer(serializers.ModelSerializer): class Meta: model = User fields = '__all__' - 정의한 UserProfileSerializer를 사용하여 아래와 같이 ProfileView를 만들어주고 포스트맨으로 확인해본다. # users/views.py class ProfileView(APIView): def get(self,.. 2022. 11. 6.
Web 개발 :: 파이썬 Django Rest Framework(12) _ Serializer 보완(Likes count, Comments count) DRF(Django Rest Framework)(12) _ Serializer 보완 01. 게시글 상세페이지 수정하기 - 현재 게시글 상세페이지를 GET 요청하면 아래와 같이 볼 수 있다. 추가한 코멘트가 현재 보이지 않고, 좋아요는 사용자 id로 나오고 있다. 코멘트를 추가하고 사용자 이메일로 나타나게 하려한다. - 아래 models.py를 살펴보면 Article에는 Comment에 대한 정보가 없지만, Comment에는 Article을 ForeignKey로 가져오고 있기 때문에 comment_set이라는 related_name으로 사용할 수 있다. 이를 활용해서 serializer를 수정한다. # articles/models.py class Article(models.Model): user = mod.. 2022. 11. 5.
Web 개발 :: 파이썬 Django Rest Framework(11) _ 좋아요, 팔로우 기능 DRF(Django Rest Framework)(11) _ 좋아요(Like), 팔로우(Follow) 기능 01. 좋아요(Like) 모델 생성하기 - 좋아요 기능은 ManyToManyField로 생성한다. 기존에 있던 Article 모델에 추가해주도록 한다. # articles/models.py class Article(models.Model): ... likes = models.ManyToManyField(User, related_name='like_articles') - 여기서는 related_name을 지정해주어야 하는데, 이유는 related_name을 지정하지 않으면 기본적으로 지정되는 이름인 article_set이 할당되어야 할 필드가 두 개가 되기 때문이다.(기존에 user라는 ForeignK.. 2022. 11. 4.
Web 개발 :: Django rest framework, 추천 시스템, 코사인 유사도, TF-IDF _TIL#44 ■ JITHub 개발일지 44일차 □ TIL(Today I Learned) :: DRF, 추천 시스템(코사인 유사도, TF-IDF) 구현 - 현재 프로젝트에서는 사용자에게 임의의 노래 리스트를 보여주고, 사용자가 노래를 선택하면 추천해주는 서비스를 제공한다. 지난번에 머신러닝을 담당했던 것을 연장해서 이번에도 추천 시스템 기능 구현을 담당하게 되었다. - 앱은 recommend라는 이름의 앱을 새로 생성하여 작업했다. 이번에는 DRF를 사용하기 때문에 Back-end 부분이랑 Front-end부분을 분리하여 작업하고 있다. - 추천 기능은 django의 views.py에 넣지않고, 별도로 분리된 파일을 생성하여 작성했다. (이름은 recommend_function.py로 하였다.) - django에서는 .. 2022. 11. 4.
반응형