일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Class
- MongoDB
- wetube
- SAA
- 채팅
- crud
- dict
- merge
- 파이썬
- docker
- SSA
- flask
- async
- react
- AWS
- NeXT
- 중급파이썬
- socket io
- Vue
- git
- RDS
- lambda
- TypeScript
- 카톡
- pandas
- node
- EC2
- S3
- 튜플
- Props
- Today
- Total
목록Python/airbnb 클론 (43)
초보 개발자
user의 edit page를 만들어보자 이번에는 UpdateView를 사용해보려고한다. 기본적으로 UpdateView는 pk를 인자로 받는다. 그리고 지정한 모델의 pk에 해당하는 data를 html에 form으로 보내준다. 하지만 edit profile을 잘 생각해보면, 내가 남의 profile은 수정을 할 수가 없다. 오직 나의 profile만 수정을 할 수가 있다. 따라서 pk를 인자로 주지 않으려고한다. 그 대신 get_object라는 메서드를 만들어 줌으로써 해결이 가능하다. return 값으로 현재의 유저를 보내주면 된다. 그리고 form에서 바꿀 내용을 fields안에 넣어주면 html안에 fields에 적어놓은 내용들이 다 들어있다. 이렇게 반복문을 돌려주면 된다. 기본적으로 templa..
DetailVeiw를 사용하여 userProfile을 만들어보려고한다. uesrs/views.py class UserProfileView(DetailView): model = users_models.User users/urls.py path("", users_views.UserProfileView.as_view(), name="profile"), 이렇게 설정해두고 users/123과 같이 접속을 하면 자동으로 user_detail.html이라는 템플릿을 찾게 된다. user_detail.html파일을 만들고 거기에 {{user.first_name}}이라고 적으면 어떻게 될까?? 나는 user라고 설정해두었으니 현재 접속해있는 나를 뜻할 것이고, 어떤 페이지를 가도(pk가 다른 아이디꺼여도) 내 이름이 나..
django message django.contrib에 있는 message를 사용하여 유저가 로그인하거나, 로그아웃하거나 할 때 어떤 메시지를 보여주려고 한다. 먼저 messages.html을 만들어 준 후 아래와 같이 if문을 사용하여 나타내주었다. {% if messages %} {% for message in messages %} {{ message }} {% endfor %} {% endif %} 먼저 css는 생략하고 내용물만 보면, messages가 있다면 그 messages안에 있는 개개의 message를 출력하도록 하는 것이다. 또한 li안의 class안에 if문을 작성하여 message.tag가 들어가도록 하였다. 이 message.tag에는 우리가 message를 작성할 때 주는 옵션같..
전에 우리가 users라는 앱 안에 forms.py를 만들고 login form과 signup form을 만들었다. 이 때 html에 form.as_p를 사용하여 form의 내용들을 단순히 p태그로 보여주기만 하였다. 하지만 input태그를 사용해야 할 때는 위와 같이 form.email을 적어주어야한다. 그럼 input태그로 잘 나오게되고, 우리가 css에 input에 무언가를 주면 저것도 input으로 인식이 되기에 잘 적용이 될 것이다. 이 때에 placeholder같은 input의 속성을 주고싶은 경우에는 아래와 같이 forms.py안에 widget옵션을 주어야한다. 우리는 html에서 사용할 type의 input을 email이라면 forms.EmailInput , text라면 TextInput ..
UsercreationForm을 사용하면 알아서 이걸 실행시켜주는데 나는 아직 저 Form 사용법을 모르기 때문에 password_validator라는 모듈만 불러와서 우리가 만든 signup form에 적용시켜주려고한다. password_validator란 우리가 10자이상 적어야 하거나, 너무 단순하거나, 숫자로만 이루어져있거나할 때 django가 error메시지를 보내서 사용자에게 제대로 작성하라고 하는 것이다. clean_password method안에 이거 딱 한줄만 추가해주었다. password_validation 모듈안에 우리가 사용할 validate_password이다. 첫번째인자로 password를 받고, 두번째인자로 user을 받는 것 같다. 근데 기본값이 None이길래 안줘도되는건가?..
Mailgun Sign Up Free | Mailgun Sign Up Free | Mailgun signup.mailgun.com 이메일을 발송하기 위해서 먼저 mailgun에 가입해주자. 장고 공식 문서를 보면 EMAIL_HOST, EMAIL_PORT, EMAIL_HOST_USER, EMAIL_HOST_PASSWORD, EMAIL_USE_TLS, EMAIL_USE_SSL 을 적어야 한다고 한다. Mailgun에 가입후 sending -> domain settings -> SMTPcredential 에 가면 이 정보들이 들어있다. 아래와 같이 settings.py에 맨 아래에 적어주자. PASSWORD같은 경우는 RESET PASSWORD 누르면 보여준다. 근데 이렇게 무턱대로 비밀번호를 settings..
forms.Form으로 구현해보았지만 이번엔 ModelForm을 사용해보려고한다. model form은 자체에 clean함수와 save함수가 있다. 이전에는 clean함수를 만들어 우리가 직접 field값을 validate해주었다. (오류 발생 등) 하지만 model form을 사용하면 알아서 unique한 값을 validate해준다. 즉 User.obects.get(username=email)이런식으로 해주어 찾고 경우에 따라 에러를 발생시켜줬는데 이걸 알아서 해준다는 말이다. form.ModelFrom 을 상속하고나서 실행시키면 당연히 오류가 발생한다. 어떤 모델을 사용한다는지 장고는 모르기 때문이다. 따라서 Meta클래스에 정보를 주어야한다. model에 우리가 사용할 모델을 넣어주고 fields에..
Sign up login form 처럼 sign up form을 만들어 보려고 한다. 역시 forms.Form을 상속받아 SignUpForm을 만들어주고 django 기본 User에서 제공해주는 last_name, first_name, email, password만 간단하게 넣어보려고 한다. username을 따로 받지 않은 이유는 email의 값을 넣으려고 하기 때문이다. 이렇게 form을 만들고 View에서 FormView를 상속하여 만들어보자. form_class에 form 방금 만든 폼을 success_url에는 reverse_lazy를(일반 reverse를 쓰면 View가 읽힐 때 urls를 읽은 상태가 아니라 찾지 못함) template_name에는 우리의 html을 적어준다. 이렇게 해주면 ..