# 카테고리 기능
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 등등 여러 파일을 설정완료했다면 배포를 하자.
- EC2 서버 만들기
- 보안그룹 수정하기
- 탄력적 IP 생성 및 EC2 연결하기
- RDS 파라미터 그룹 생성 및 수정하기
- RDS 데이터베이스 만들기
- .env.prod 작성하기(RDS 및 서버 주소 저장)
- .github actions 작성하기
- 배포 branch push~
배포할 때는 늘 떨린다...
배포할 때 mysqlclient는 requirements.txt에서 삭제해주자. error도 많이 일으키고 어짜피 Dockerfile에서 설치해준다.
sudo docker exec -it web python3 manage.py migrate 서버 연결해서 migrate도 해주어야 DB가 진짜 만들어짐!
# https 연결하기
https 연결을 해주자.
- 도메인 구매
- Route53에서 호스팅 영역 생성
- 레코드 생성 후 도메인 네임서버 연결(수정)
- ACM에 도메인 인증서 요청
- 승인이 완료되면 EC2서 타겟 그룹 생성 > 로드밸런서 생성
- 로드밸런서 리스너 규칙 수정
완료~
# 추가
DataGrip까지 연결완료~~
끝!!은 아니지만 거의 끝!!!
AWS 배포(2) - EC2, RDS, github action (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 |