본문 바로가기

졸업 프로젝트

카테고리 기능 + 배포

# 카테고리 기능

 

django_filters를 이용하여 편하게 만들 수 있다.

 

pip install django-filters 후 설정해주기.

# settings.py

INSTALLED_APPS = [
    "django_filters",
]

REST_FRAMEWORK = {
    "DEFAULT_FILTER_BACKENDS": ["django_filters.rest_framework.DjangoFilterBackend"],
}

 

이제 필터링할 함수에 작성해준다.

from django_filters.rest_framework import DjangoFilterBackend

class PostViewSet(viewsets.ModelViewSet):
    queryset=Post.objects.all()
    serializer_class=PostSerializer

    permission_classes = [IsAuthenticated, AuthenticatedOnly]
    pagination_class = LargeResultsSetPagination
    filter_backends = [DjangoFilterBackend]
    filterset_fields = ["group"]


    def perform_create(self, serializer):
        serializer.save(author = self.request.user)

filterset_fields에 필터링할 컬럼을 넣어준다.

 

파라미터로 넣어주면 성공~

 


# AWS 배포하기

배포를 위한 dockerfile과 docker-compose.prod.yml, .github 등등 여러 파일을 설정완료했다면 배포를 하자.

  1. EC2 서버 만들기
  2. 보안그룹 수정하기
  3. 탄력적 IP 생성 및 EC2 연결하기
  4. RDS 파라미터 그룹 생성 및 수정하기
  5. RDS 데이터베이스 만들기
  6. .env.prod 작성하기(RDS 및 서버 주소 저장)
  7. .github actions 작성하기
  8. 배포 branch push~

배포할 때는 늘 떨린다...

배포할 때 mysqlclient는 requirements.txt에서 삭제해주자. error도 많이 일으키고 어짜피 Dockerfile에서 설치해준다.

sudo docker exec -it web python3 manage.py migrate 서버 연결해서 migrate도 해주어야 DB가 진짜 만들어짐!

 

성공~

 


# https 연결하기

https 연결을 해주자.

 

  1. 도메인 구매
  2. Route53에서 호스팅 영역 생성
  3. 레코드 생성 후 도메인 네임서버 연결(수정)
  4. ACM에 도메인 인증서 요청
  5. 승인이 완료되면 EC2서 타겟 그룹 생성 > 로드밸런서 생성
  6. 로드밸런서 리스너 규칙 수정

완료~

 


# 추가

DataGrip까지 연결완료~~

 

끝!!은 아니지만 거의 끝!!!

 

AWS 배포(2) - EC2, RDS, github action (tistory.com)

 

AWS 배포(2) - EC2, RDS, github action

저번에 이어서 배포 준비하기~~ 로컬이 아닌 서버에서 돌아가는 파일은 github actions가 실행시켜준다. pr할때마다 action이 새로 실행된다. 수정한 코드를 쉽게 반영할 수 있어서 편리하다..! # deploy.y

jain5379.tistory.com

설명을 좀 대충 썼는데 그냥 이전에 하던거 이어서 했다ㅎㅎ

'졸업 프로젝트' 카테고리의 다른 글

Signal을 이용하여 Profile 자동 생성하기 + RDS 접속  (0) 2024.03.12
cors + 기능 수정하기  (0) 2024.02.29
pagination 추가하기 + 배포 준비  (0) 2024.02.16
게시판 댓글 기능  (0) 2024.02.03
게시판 기능  (0) 2024.02.02