일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- RDS
- 파이썬
- MongoDB
- 채팅
- wetube
- docker
- TypeScript
- flask
- socket io
- 튜플
- node
- git
- SAA
- dict
- EC2
- Class
- S3
- Props
- 중급파이썬
- lambda
- 카톡
- react
- async
- pandas
- crud
- SSA
- AWS
- NeXT
- Vue
- merge
- Today
- Total
목록전체 글 (422)
초보 개발자

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가 없는 경우에는 현재 장소로 보낸다. 이 경우 검은색으로 글씨가 처리되어 넘어가지 않는..

로드 밸런스를 먼저 설치를해주자 Application Load Balancer를 사용하려고 한다. 대상그룹을 지정해주어야 하는데, 이건 어떤 인스턴스를 elb안에 넣을 것이냐를 의미하는 것이다. 이 대상그룹과 elb를 연결하고, 만약 트래픽이 과도하게 몰리면, 대상그룹에 ec2인스턴스를 추가해서 사용할 수 있도록, 반대로 트래픽이 줄어들면 대상그룹의 ec2 인스턴스를 삭제하고 이런식으로 조절할 수 있도록 대상 그룹을 지정하는 것이다. 대상그룹의 port는 8000으로 해주었다. 이건 elb에서 사용자가 접속하면 80번포트로 트래픽을 받고 어디로 전달해 줄 것이냐를 정해주는 것이다. 우리는 8000번 포트를 개방할 것이기 때문에 이렇게 적었다.

ec는 elastic computing의 약자이다. 기본적인 서비스이며, 서버를 하나 빌린다고 볼 수도 있다. 따라서 RAM,CPU등을 설정할 수도 있다. 먼저 인스턴스를 생성해보자 ubuntu 20.04버전과 프리티어, 새 키페어를 생성했다. 이 키페어를 통해서 서버와 ssh방식으로 통신할 수 있는 것이다. 서버는 공개키를 나는 개인 키를 가지게 되고, 공개키에서 생성한 암호를 개인키에서 풀어서 접속하는 관계, 공개키에서 생성한 암호는 개인키에서밖에 풀 수 없다고 한다. 최초 접속시에는 이렇게 비대칭키(서버는 공개키를 가지고, 유저는 개인키를 가지기에)를 사용하지만, 그 이후에는 같은 키를 공유하여 정보를 암호화, 해독을 한다고 한다 (대칭키 형식) SSH 명칭부터 접속까지 한 번에 이해하기 1 | 가..

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..