노마드 코더 7

노마드 코더 에어비앤비 클론 코딩 #16 API TESTING

API Testing: 우리 코드에서 발생할 수 있는 모든 케이스를 작성해놓고 명령어 하나로 테스트하는 것이다. 그 명령어인 'python manage.py test'를 입력하면, 파이썬은 내가 작성한 모든 테스트를 실행한다. APITestCase class 안에 있는 테스트 메소드 명명 규칙: 만약 django가 내 코드를 테스트해주기를 바란다면, 그 테스트 코드는 반드시 'test_'로 시작하는 메소드 안에 작성되어야 한다. 'self.client...'는 우리의 API로 get/post/put/delete request 등을 보낼 수 있게 해준다. 'python manage.py test'는 우리가 만들어둔 DB에서 일어나는게 아니라 새로운 DB를 만들어서 실행하고 테스트가 끝나면 새로 만들어진 D..

노마드 코더 에어비앤비 클론 코딩 #15 AUTHENTICATION

Authentication django는 우리가 바로 사용할 수 있는 인증시스템이 기본으로 있다. 로그인하면 django는 백엔드에서 세션을 생성하고 자동으로 쿠키도 준다. 매번 django 웹사이트를 방문할 때마다, 쿠키는 django로 가고, django는 쿠키를 읽어서 request.user에 user와 쿠키 정보를 함께 넣는다. 이런 기본 인증 시스템이 아닌 직접 커스텀 인증을 만들 수 있다. 이런 방법에는 토큰 인증, JWT인증 등이 있다. Custom Authentication #config/authentication.py from rest_framework.authentication import BaseAuthentication from rest_framework.exceptions impo..

노마드 코더 에어비앤비 클론 코딩 #12 USERS API

User Profile # users/serializers.py class PrivateUserSerializer(ModelSerializer): class Meta: model=User exclude = ( "password", "is_superuser", "id", "is_staff", "is_active", "first_name", "last_name", "groups", "user_permissions", ) #users/ views.py #.../api/v1/users/me 내 프로필만 보는 url class Me(APIView): permission_classes = [IsAuthenticated] #자세한 정보는 로그인한 본인에게만 보여야하므로. def get(self, request): #..

노마드 코더 에어비앤비 클론 코딩 #10 Django Rest Framework

@api_view() 유저에게 HttpResponse를 전달하면 안되고, JSON을 전달해야한다. Json에서는 'return JSONResponse({"categories":all_categories})'처럼 변수를 보내면 오류가 난다. 그래서 QuerySet을 JSON포맷으로 변환해야한다. Django Rest Framework를 사용하여 변환할 수 있다. #예 from rest_framework.response import Response from .models import Category @api_view() def categories(request): return Response(...) Serializer: python말로 Django말을 JSON으로 바꿔주고, 반대로 JSON을 Django말..

노마드 코더 에어비앤비 클론 코딩 #9 Urls and Views

Views config 폴더의 'urls.py' : 유저가 특정 url로 접근했을 때, 장고가 해야할 행동에 대해 적혀있다. 각 App 폴더마다 있는 'views.py'는 직접 import해야 사용할 수 있다. 그래서 꼭 이름이 views.py일 필요는 없다. 이를 직접 import하는 방법은 두가지다. ①urls.py에 적어주기 views.py에 함수 작성 # views.py from django.http import HttpResponse def say_hello(request): return HttpResponse('Hello!') -> urls.py에 path 적어주기 # urls.py from room.views import say_hello urlpatterns = [path("rooms",s..

노마드 코더 에어비앤비 클론 코딩 #8 Power Admin

Methods admins.py와 models.py 모두에 function을 정의할 수 있다. 만약 오직 관리자 페이지에서만 function을 사용할 것이라면, admins.py에 정의한다. 만약 관리자 페이지 뿐만 아니라 다른 곳에서도 사용할 것이라면, models.py에 정의한다. Method 만들기 클래스 안에 있는 메서드는 항상 self를 첫번째 매개 변수로 받아야한다. 꼭 self라 할 필요는 없고, 단지 꼭 하나의 초기 매개 변수가 있으면 된다. ⭐'방 리뷰의 평균 보여주기' 메서드 우리의 Room 모델의 review 속성을 가지고 있지 않다. 하지만, review 모델이 room을 가리키므로 Room에서 그 방을 가리키는 모든 review들에 접근할 수 있다. def rating(room):..

코코아 클론 챌린지 6일차

배울점, 기억할 점 inline-block는 별로... flexbox 사용 규칙 1. 자식 엘리멘트에는 어떤 것도 적지않는다. 자식을 움직이려면 부모를 flex container로 만든다. 부모를 display : flex; 로 만든다. 2. main axis cross axis x축이 주축, y축이 교차축. justify-content는 주축에 적용. align-items는 교차축에 적용. vh : viewport height 100vh는 100% vh. 창에 꽉 차게. 화면의 크기가 달라도 동일하게. 3. justify-content는 주축에 적용. align-items는 교차축에 적용. 이걸 바꿀 수 있다. flex 했을 때, 디폴트는 row. flex-direction: column 을 했을 때,..

노마드 코더 2022.06.11
728x90