일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- flask
- SSA
- socket io
- MongoDB
- 카톡
- Class
- lambda
- react
- TypeScript
- 파이썬
- 튜플
- dict
- EC2
- async
- 중급파이썬
- 채팅
- SAA
- S3
- RDS
- AWS
- merge
- docker
- wetube
- pandas
- Vue
- NeXT
- crud
- Props
- git
- node
- Today
- Total
목록Python/airbnb 클론 (43)
초보 개발자
room app안에 templatetags라는 이름의 폴더를 하나 만들자. 반드시 이름을 templatetags라고 해주어야 한다! 거기에 __init__.py 파일을 만들어서 파이썬이 인식할 수 있도록 해주자. 먼저 아래와 같이 {{ }} 안의 | 뒤에 존재하는 것을 filter라고 한다. 앞의 내용을 필터해준 다는 말이다. 여기서 우리는 기존에 내장되어있는 upper를사용해보자 우리는 분명 소문자로 썼는데 화면에서는 아래와 같이 대문자로 나타난 것을 확인할 수 있다. 우리는 이 필터를 커스텀 하려고한다. 먼저 위에서 만든 templatetags폴더안에 sexy_capital.py이라는 파일을 만들고 아래와 같이 만들어주자. 이렇게 한 뒤에 html파일로 가서 위에 {% load sexy_capital..
session에 정보를 넣어 현재 사용자의 상황?에 따라 다르게 페이지를 보이도록 할 수 있다. 먼저 start hosting, stop hosting 이 두 버튼을 만들어보겠다. nav.html인데 여기서 만약 세션에 is_hosting이라는 것이 있다면 Stop 없다면 Start로 보이도록 해주었고, 아래를 보면 세션에 is_hosting이 있는 경우에 Upload Room을 클릭할 수 있도록 해주었다, 아래와 같이 url을 설정해주고 view에는 try except를 사용하여 하나의 함수만으로도 동작할 수 있도록 하였다. del request.session['asdfasdf'] 은 session의 내용을 지우는 역할이고 request.session['asdfasdf']는 세션에 내용을 넣는 역할이다..
createview를 사용하여 photo를 추가하려고한다. create view를 사용하여 아래와 같이 만들어 준 뒤 아래와 같이 잘 뜨는 것을 확인할 수 있는데 우리는 Photo모델에서 foreign key로 room을 지정해주도록 해야한다. 하지만 현재 create view가 제공해주는 기본 form으로는 room을 지정해줄 수가 없다. 따라서 직접 form을 만든 뒤에 form의 save를 override해주는 방식을 사용해야한다. ModelForm을사용해서 아래와 같이 만들어주었다. save함수를 잘보면 인자로 pk값을 받아와서 그걸로 room을 찾는 역할을 한다. form이 정상이라면 form_valid이 실행이된다. pk값은 여기서 밖에 구하지 못한다. form에서는 구할 수 없다. 따라서 여..
Delete edit room에서 photo를 지우려고한다. urls.py에 name을 delete_photo라고 지어준 곳으로 이동시키는데, 그 뒤에 인자를 순서대로 room.pk와 photo.pk를 보낸다는 뜻이다. 아래는 url이다. 받아온 인자를 room_pk, photo_pk로 받아온다. 받아와서 이 delete_photo에게 전달해주는데 이게 조금 복잡해보일 수 있다. 먼저 user를 받아온 뒤에 room과 photo가 있는지 확인을 한다. get으로 확인하는 경우에는 찾지 못할경우 에러가 나기에 try except문으로 만들어주었다. 그래서 room이 없는 경우에는 그냥 home으로 보내버리고, photo가 없는 경우에는 현재 장소로 보낸다. 이 경우 검은색으로 글씨가 처리되어 넘어가지 않는..
ec2를 사용하려면 처음부터 다 설치해주어야 하는 불편함이 있지만 eb라고 불리우는 것을 사용하면 기본적으로 ec2를 자동적으로 생성해준다. 두개는 다르지 않다 elastic beanstalk는 ec2를 만드는 단축기일 뿐이다. 그리고 코드를 매우 쉽게 배포할 수 있게 해준다. 그리고 테스트용 인스턴스를 만들 수 있게도 해준다. 먼저 aws cli를 설치해주어야 한다. pipenv install awsebcli --dev 그런 뒤 db를 치면 커맨드 들이 떠야 정상적으로 설치된 것이다. 다음 eb init 을 하면 region을 고르는 화면이 나올텐데 seoul을 찾아 번호를 적자 (10) 그다음엔 aws-access-id를 생성해야한다. 왜냐면 현재 아마존은 우리가 누군지 모르는 상태이다. AWS에서 ..
먼저 저번에 했던 것과 마찬가지로 UpdateView를 상속한 View에서 아래를 정의해주어야 한다. model template_name fields 그리고 update view는 똑똑해서 url에서 pk값을 받고 위의 model에 정의한 model에서 pk값에 해당하는 data를 반환하고 그 반환하는 데이터는 form에 담기는데 그 form에는 우리가 위에서 지정한 fields가 담겨져 있다. 그리고 그 form을 template_name에 정의해놓은 html파일에서 {{ form }}을 사용하여 접근할 수 있는 것이다. 전에 user의 profile을 edit하는 경우에 자신만! 바꿀 수 있어야했다. 내가 다른사람의 profile을 바꾸는건 있을 수 없기 때문이다. 저번에는 어떤 방식을 사용했냐면 U..
여러 mixin클래스가 있다. 로그인 되어있는 유저인지. 로그인 되어있지 않은 유저인지 혹은 소셜로그인으로 되어있는지 등을 확인하는 절차가 필요하다. 그에 따라 접근할 수 있는 페이지가 다르기 때문.. 그걸 해결할 수 있는 것이 CBV에서는 mixin을 사용하면 되는 것이다. from django.contrib.auth.mixins import LoginRequiredMixin from django.contrib.auth.mixins import UserPassesTestMixin 위의 mixin중 LoginRequiredMixin은 로그인이 되어있는지 확인을 해주고 로그인이 되어있지 않다면 로그인 url로 보내는 기능을 한다. users.py안에 mixins.py를 만들고 거기안에 custom mixi..
django를 사용해서 password change 기능을 만들어 보려고한다. 기본적으로 django는 form과 view에서 기능을 제공해주고있다. 나도 쓰는 방법을 잘 모르지만, 먼저 기본적으로 Form을 만들어 주었다. from django.contrib.auth.forms import PasswordChangeForm class PasswordForm(PasswordChangeForm): old_password = forms.CharField( widget=forms.PasswordInput( attrs={"placeholder": "Present Password"}, ) ) new_password1 = forms.CharField( widget=forms.PasswordInput(attrs={"..