Server/Django

    [Django] AWS S3 Public 권한 설정하기

    📌 AWS S3 Public 권한 설정하기 [Server/Django] - [Django] AWS S3와 연동하기를 진행한 이후, 별다른 조치없이 S3에 파일을 업로드 하였다면, 해당 파일에 public한 연결 방법으로는 Access Permission Denied 메시지가 뜰 것이다. public 접근을 전부 차단해버렸으니 당연하다. 이 글에서는 public 권한 (정확히는 GET만)을 허용해주는 방법을 알아볼 것이다. 📍 S3 권한 탭으로 가서 아래와 같이 2개만 체크 📍 버킷 정책을 눌러 버킷 정책 편집기 부분의 ARN: 옆 부분을 복사 이후 아래의 정책 생성기 클릭 📍 S3 정책 생성기 화면에서 설정 Select Type Of Policy : S3 Bucket Policy Effect : Allo..

    [Django] upload multiple image file in one model

    한 모델에 여러 이미지 파일을 업로드 해야 할 때 Meet 이라는 모델이 있고, 그 모델 하나에 여러 이미지 파일이 들어갈 수 있는 상황이라고 했을 때, 어떻게 구현해야 할까? 쉽게 생각하자면, 댓글과 다를 것이 없다. 댓글 또한 one to many 모델이기 때문이다. 단지 댓글은 텍스트 데이터를 가지고 있는 것이고, 이미지 파일은 이미지 데이터를 가지고 있는 차이가 있을 뿐이다. 따라서 같은 방식으로 구현을 해주면 된다. 모델의 객체값을 ForeignKey로 가지고 있는 Images 라는 모델을 만들었다. #models.py class Meet(models.Model): pair = models.ForeignKey(Pair, blank=False, null=False, on_delete=models...

    [Django] AWS S3와 연동하기

    Django, AWS S3와 연동하기 AWS에 입장하여, 서비스 -> S3를 눌러 S3 Manage Console에 진입한다. 1. 버킷 만들기를 클릭 2. 버킷 이름을 적어주고 '다음' 3. 옵션 구성 페이지. 현재는 필요 없다. 바로 '다음'을 클릭 4. 전체 체크를 풀어주고 퍼블릭 정책 관련한 아래 2가지만 체크해주고 '다음' 클릭 5. 위와 똑같게 맞추었다면, 바로 '다음'을 눌러도 무방하다. '다음' 클릭 6. 제대로 버킷이 생성되었다면, IAM을 설정하러 갈 차례이다. Hot Ez Ex) IAM이란 쉽게 비유하자면 리눅스에서 nginx나 db용 유저를 따로 만들어 관리하듯이, 그런 유저를 하나 새로 만들어준다고 생각하면 된다. 물론 전체적인 상황에서는 다를 수 있지만 현재 상황에서는 비슷한 용..

    [AWS CentOS] Django Nginx uWSGI 연동하기

    Django Nginx uWsgi 연동하기 AWS에서 Free Tier 서버 기본 선택 시에 설치되는 instance이며, CentOS 이며, django는 미리 구축한 상태입니다. ( 그러나 연동을 위한 설정은 해주지 않은 상태였습니다) 아래 같은 환경에서 진행하였다. $ cat /etc/*release* 0. 준비물 django는 설치되어있다는 가정하에, settings에 static 폴더와 media 폴더 경로를 설정하지 않았다면 설정해준다. $ settings.py STATIC_URL = '/static/' STATIC_ROOT = '/{프로젝트 경로}/assets/' STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'static'), ] # media file (a..

    [Django] Rest Framework / ViewSet QuerySet Params

    예를 들어 https://xxxxxxxxx.xxx/match/list/?user=3 과 같이, ? 를 통한 query 질의를 받아들여 queryset을 구성하려면 아래와 같이 구성하면 된다. class MatchView(viewsets.ModelViewSet): queryset = Match.objects.all() serializer_class = MatchSerializer permission_classes = [ permissions.IsAuthenticated ] def get_queryset(self): queryset = self.queryset search = self.request.query_params.get('user', None) if search: queryset = queryset..

    [django] User Profile Response 요청하기

    in serializers.py from .models import Profile class ProfileSerializer(serializers.ModelSerializer): class Meta: model = Profile fields = '__all__' in views from .serializers import ProfileSerializer class ProfileAPI(viewsets.ViewSet): def retrieve(self, request, pk=None): user = get_object_or_404(User, pk=pk) profile_serializer = ProfileSerializer(user.profile) return Response(profile_serializer..

    [Django] RestFrameWork 설치

    $ ./venv/bin/pip3.7 install djangorestframework $ ./venv/bin/pip3.7 install serializers Hot Ez Ex) serializers는 데이터를 JSON, XML과 같은 native 데이터로 바꿔주는 역할을 함 이후 settings.py 수정, rest_framework를 추가해주고 in settings.py INSTALLED_APPS = [ ... 'rest_framework', ... ] 아래의 설정을 넣어준다 in settings.py # REST FRAME WORK REST_FRAMEWORK = { 'DEFAULT_PERMISSION_CLASSES': [ # 'rest_framework.permissions.IsAdminUser', ..

    [Django] server start 방법 (daemon 포함)

    django 서버 실행 방법. 일반적인 방법 $ python manage.py runserver {PORT} 위 방식은 putty 등 해당 터미널 종료 시 프로세스도 함께 종료되기 때문에 휘발성이라고 볼 수 있다. daemon 형태로 돌릴려면, $ nohup python ./manage.py runserver 0.0.0.0:8000 & Hot Ez Ex) nohup : 유닉스, 리눅스에서 데몬 형태로 파일을 실행시키는 프로그램, 터미널 세션이 끊겨도 실행을 멈추지 않고 동작함. 또한 이로 인해 생성되는 nohup 파일에, 실행한 파일의 출력이 찍힌다. & : 프로세스를 실행할 때 백그라운드에서 실행한다. 보통 & 로만 으로도 daemon 형태로 실행된다는 말이 있는데, 최근에는 그런 것 같고. 일반적으로..