일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 채팅
- socket io
- lambda
- 중급파이썬
- flask
- node
- pandas
- NeXT
- Vue
- merge
- dict
- S3
- 튜플
- wetube
- git
- EC2
- 파이썬
- AWS
- docker
- SAA
- SSA
- 카톡
- RDS
- async
- crud
- TypeScript
- Class
- react
- MongoDB
- Props
- Today
- Total
목록Python/airbnb 클론 (43)
초보 개발자
room admin을 좀 바꿔보려고한다. list_display를 사용하여 간단히 정보를 볼 수 있도록 하였고, list_filter를 사용하여 조건에 맞는 정보만 볼 수 있도록 하였다. search_fields를 사용하여 조건에 맞는 걸 검색 할 수 있는데 =city는 만약 city가 seoul이라면 seoul혹은 Seoul,SEOUL이런식으로 대소문자 구분 없이 일치해야 한다. ^city라면 startswith옵션으로 seo Seo SEO이런식으로 적으면 seoul에 해당하는 방들이 나온다. 여기서 host는 room의 field명인데 foreign key로 구성되어있다. 언더바 2개 __를 사용하면 그 fk에서 정보를 가져올 수 있다. 따라서 user_name이 taehyeki라면 tae Tae T..
Review 리뷰를 작성하는 모델이다. 먼저 앱을 등록해주고 필드를 적어주었다. 리뷰를 적는 review와 평점을 적는 것들 그리고 user와 room을 foreign key로 받아왔다. Room(1)과 Review(N)가 ForeignKey 로 연결되어 있는 상태이다. N의 입장에서 ForeignKey를 설정 해 주었다. 만약 N의 입장에서 Room의 정보에 접근하고 싶다면 어떻게 해야할 까? self.room.country 이런 식으로 접근 가능하다. self.room만 적어주면 Room의 __str__ 함수가 실행이 되어 room.name이 자동으로 출력이 되는 것이다. 이를 makemigrations와 migrate를 하고 admin에 등록해주자 그리고 모델안에서 함수를 생성할 수 있다. 평점의 ..
먼저 room app을 config.settings에 추가해주자. 우리는 room이 모델이 만들어진 시간, 업데이트 시간 등이 필요하다. 따라서 아래와 같이 만들어 줄 수 있다. 근데 저 필드가 단순히 Room에서만 사용될 것이 아니라, review, reservation 등 여러 곳에서 사용될 필드인데 그 때마다 계속 created, updated를 만들어준다면 불필요한 반복이 될 것이다. 따라서 이걸 클래스로 만들어주어 재사용성을 높이려고 한다. django-admin startapp core core라는 앱을 만들고 config.settings에 추가해주자. 그리고 아래와 같은 클래스를 만들어주자. 이 클래스를 다른클래스가 상속 받는다면 기본적으로 저 created가 들어있으니 따로 만들어 줄 필요..
우리가 전에 admin페이지에서 보여주기 위한 설정으로 아래와 같이 적었던 적이 있다. 이건 데코레이터로 만든 방식이고, 아래처럼 만들 수도 있다. @admin.register(models.User) -> admin 패널에서 이 User모델을 보고싶어 class CustomUserAdim(admin.ModelAdmin) -> User모델을 컨트롤하는 클래스가 바로 이거야 라는 뜻이다. 이 클래스 안에서 다양한 커스텀을 해줄 수 있다. 현재 우리의 admin페이지의 User를 보면 아래와 같다. list_display, list_filter기능을 사용하면 장고가 data를 좀 더 보기쉽게 도와준다. 아래와 같이 작성을 한다면 admin 페이지의 User모델이 이렇게 바뀌어 있는 걸 확인할 수가 있다. di..
우리의 데이터가 이미 만개가 있다고 가정하고 새 필드(column)를 추가하려고한다. 이 때 옵션을 주어서 기존에 있던 값에 필드가 생기기 전에 있던 레코드에 데이터를 채워줄 것이다. 여기서 default=""인 것은 값을 ""로 채운 다는 뜻이고, null = True를 주면 기존에 있던 값은 비어있는 채로 있을 것이다 """ """ 이건 docstring이라는 뜻인데 이 클래스가 어떤 역할을 하는지 알려주는 것이다. User에 마우스를 올려보면 우리가 적은 내용이 표시되는 것을 확인할 수 있다. 또 from . models import User form . 이건 현재의 파일과 같은 폴더 내에 있는 import models 이건 models를 불러온다. 이뜻이다. 우리는 User 모델에 프로필 사진을 ..
django-admin을 사용해서 첫 앱을 만들어보자 앱의 이름은 복수형태로 만들어주어야 한다. django-admin startapp rooms django-admin startapp lists django-admin startapp reviews django-admin startapp users django-admin startapp conversations 앱 안에 있는 이름들은 절대 변경해선 안된다. 파일명 변수명 장고는 각 정해진 파일, 변수를 지켜보고 있기 때문이다. 하지만 생성하는 것은 자유롭다. urls.py를 비롯해 몇가지 파일을 생성할 것이다. 장고에서 기본적으로 제공하는 user모델이 있는데 많은 기능을 충분히 제공하고 있지만, ( 유효성검사, 권한 등 ) 우리는 이걸 좀 더 확장해서..
우리가 만든 장고 project는 여러 애플리케이션을 포함한다. project는 app의 집합이다. 언제 어떻게 app을 만들고 어떻게 project를 계획하는지 배워보려고 한다. 먼저 에어비앤비를 들어가면 방을 고를 수 있다. 그 방의 정보를 수정, 추가, 리스트보여주기, 검색하기, 삭제, 업로드 이게 하나의 애플리케이션이다. 거기에 달린 리뷰들이 있다. 그 리뷰들도 room app에 넣으면 될까?? room을 리뷰하는 것이니까?? 그럼 리뷰생성하기, 삭제하기,수정하기 리뷰 보기 리뷰 나열하기 거기에 또 room 예약 기능이 있을 것이다. 예약 생성하기, 삭제하기 기능도 필요하다. 호스트가 예약을 승인과 취소도 할 수도 있어야 한다. 이외에도 엄청 많다. 이러한 기능을 room app에 전부 담아버리면..
db.sqlite3을 삭제해보자 , 왜냐하면 앞서 runserver를 했을 때 이 파일이 없을 때 오류가 발생했기 때문이다. 그리고 지금 그 빨간색 오류를 다시 보고싶기에 지우는 것이다. 지우고 다시 서버를 실행시켜보자 python managy.py runserver 그럼 위와같이 다시 빨간색 오류메시지가 나올 것이다. 폴더를 보면 sqlite파일이 생긴 것이 보이는데 지금은 빈 파일이다. /admin으로 들어가보면 아래와 같이 오류가 발생한 것을 확인할 수 있다. 장고에서 데이터베이스 테이블을 검색하지만 존재하지 않는다는 에러이다. (django_session 테이블) 지금은 장고와 데이터베이스가 연동되지 않았다는 뜻이다. migration이란 하나의 상태에서 다른 상태로, 다른 데이터 유형으로 바꾸는..