Project using python/Cloning Airbnb
-
django FBV homeViewProject using python/Cloning Airbnb 2021. 2. 26. 11:00
urlpattenrs core/urls.py $ django-admin startapp core CBV랑 다 똑같고 path의 두 번째 인자만 다르다. FBV는 CBV와 다르게 .as_view()를 사용하지 않는다. 왜냐하면 homeView 자체가 function이기 때문이다. FBV(Function Based View) rooms/views.py FBV에서는 Paginator를 호출해서 paginator object를 직접 만들어줘야 한다. 그리고 render()를 사용해서 pages/root/home.html을 랜더링한다. from django.shortcuts import render from django.core.paginator import Paginator, EmptyPage from . im..
-
page_number.htmlProject using python/Cloning Airbnb 2021. 2. 26. 10:42
templates mixins/page_number.html page.has_previous : 이전 page를 가지고 있는지 True or False를 반환한다. page.paginator.num_pages : 총 page 수를 반환한다. page.has_next : 다음 page를 가지고 있는지 True or False를 반환한다. template filter : 2 번째 line에 if page_sector|add:-4가 있다. page_sector 오른쪽에 |add:-4는 template filter라고 한다. {%%} 안에서 여러 가지 연산을 할 수 있다. add 이외에도 |make_list 처럼 '12345'를 list로 만들어준다. {% if page.has_previous %} {% if ..
-
room_card.html and model functionProject using python/Cloning Airbnb 2021. 2. 26. 10:31
templates mixins/room_card.html 나는 room.get_first_photo와 room.get_review_points를 사용했다. 이 method는 rooms/models.py에 정의되어 있다. {% for room in rooms %} picture {% if room.host.superhost %} Superhost {% endif %} {{room.get_review_points}} ({{room.reviews.count}}) {{room.country}} • {{room.address}} {% endfor %} 참고 자료 노마드 코더의 Airbnb 클론 강의 소스 코드 github.com/zpskek/airbnb-clone-v3/commit/509e5df373712be95..
-
django CBV HomeViewProject using python/Cloning Airbnb 2021. 2. 26. 10:22
모든 model들을 완성하였으니 웹 페이지(view)를 만들 차례다. urlsettings.py Diretory path 설정 settings.py에 TEMPLATES list에 있는 DIRS에 다음과 같이 directory 경로를 추가해준다. urlpattenrs config/urls.py config/urls.py에 urlpatterns에 app의 url 경로를 추가해줘야 한다. include의 첫번 째 인자는 .urls다. namespace는 core app에 있는 urls.py에 선언된 app_name이다. core/urls.py $ django-admin startapp core 위 명령어를 쳤을 때 urls.py는 생성되지 않기 때문에 우리가 임의의로 생성해줘야 한다. 4 line에 app_n..
-
Custom Commands and django-seedProject using python/Cloning Airbnb 2021. 2. 25. 08:00
Custom Commands 모든 model의 틀을 잡았다면, 각 model의 test case를 생성해야 한다. 이것을 도와주는 것이 django의 custom command와 django-seed다. Custom Command diretory 구조 directory 구조는 다음과 같다. app/management/commands/을 생성하면 된다. management와 commands folder에는 __init__.py를 생성한다. (__pycache__는 신경쓸 필요 없다. command를 실행하면 자동으로 생성되는 것이다.) __init__.py __init__.py를 생성하는 이유는 해당 디렉토리가 패키지의 일부임을 알려준다. python 3.3 버전 이후로는 __init__.py이 없어도 패..
-
Create Conversation Model and AdminProject using python/Cloning Airbnb 2021. 2. 24. 16:57
settings.py app 추가 PROJECT_APPS에 conversation app을 추가해준다. reservations/models.py Conversation Model 생성 대화를 이루고 있는 user들을 집합을 participants로 나타냈다. Message Model 생성 Conversation model 이외에도 Message model을 생성했다. conversations/admin.py admin 생성 Reservation Admin 참고 자료 노마드 코더의 Airbnb 클론 강의 소스 코드 github.com/zpskek/airbnb-clone-v3/commit/e623d3404dcd7d410ded988bbf357c4cce73fcc9
-
Create List Model and AdminProject using python/Cloning Airbnb 2021. 2. 24. 16:28
settings.py app 추가 PROJECT_APPS에 list app을 추가해준다. lists/models.py List는 guest가 좋아하는 room의 목록이다. 그 중 user는 ForeignKey가 아닌 OneToOneField를 사용하였는데, 그 이유는 다대일 매칭이 아닌 일대일 매칭을 해야 하기 때문이다. Guest가 자신의 list를 다른 이들과 공유하지 않기 때문이다. reservations/admin.py 참고 자료 노마드 코더의 Airbnb 클론 강의 소스 코드 github.com/zpskek/airbnb-clone-v3/commit/31987815300f2d089ffae80d5a50f72ed299b17f
-
django-dotenvProject using python/Cloning Airbnb 2021. 2. 24. 15:34
환경변수를 관리하는 파일은 .env다. 이 파일에 내용은 외부에 노출되어서는 안 된다. 동시에 django app은 이 파일의 내용을 읽어야 한다. 그것을 도와주는 moudle이 django-dotenv다. 나는 settings.py에 있는 SECRET_KEY에 value를 .env로 옮기고 os.environ.get("SECRET_KEY")로 읽었다. Installation $ pipenv install django-dotenv Usage manage.py import dotenv를 해주고 if __name__ == "__main__"에 다음 code를 추가해줬다. settings.py에 있는 SECRET_KEY는 외부에 노출되어서는 안되기 때문에 .env로 옮기고 os.environ.get()으로 ...