본문 바로가기

졸업 프로젝트

(16)
카테고리 기능 + 배포 # 카테고리 기능 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_..
pagination 추가하기 + 배포 준비 # pagination 기능 추가하기 pagination 추가하기~ DRF에 내장된 함수를 사용하면 된다. default로 적용해서 모든 함수에 사용할 수도 있고, pagination을 하고 싶은 개별함수에만 작성할 수도 있다. 아직 정해지지 않아서 둘다 미리 작성해둔다. # default # settings.py REST_FRAMEWORK = { 'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.LimitOffsetPagination', 'PAZE_SIZE' : 3 } settings에 이렇게 설정해두면 모두 적용된다. 'PAGE_SIZE' 변수는 페이지 당 최대 보여줄 데이터의 개수! LimitoffsetPagination 함수는 파라미터로 limit값..
게시판 댓글 기능 # 댓글 기능 만들기 이전 post 모델을 참조해서 만든다. # models.py class Comment(models.Model): id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) post=models.ForeignKey(Post, on_delete=models.CASCADE, related_name='comments') author = models.ForeignKey(User, on_delete=models.CASCADE) content = models.TextField() created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTi..
게시판 기능 # 게시판 기능 만들기 준비 오늘은 게시판 기능을 만들 것이다. posts branch로 새롭게 이동해서 작업해주기~ 이제 posts app을 만들고 settings.py에 추가한다. # bash python manage.py startapp posts # settings.py INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'rest_framework', 'rest_framework_simplejwt', "accounts", "po..
[Django] Direct assignment to the forward side of a many-to-many set is prohibited. Use groups.set() instead. # 오류 User Serializer를 만드는데 위와 같은 오류가 났다. class SignUpSerializer(serializers.ModelSerializer): class Meta: model = User fields = ('__all__') extra_kwargs = {"password": {"write_only":True}} def create(self, validated_data): user = User.objects.create(**validated_data) user.set_password(validated_data['password']) user.save() return user 원래 짜던 코드와 다르게 짜긴 했는데 차이가 무엇일까...해서 검색도 하고 질문도 해서 답을 찾았다. cla..
유저 수정 기능 + API 명세서 작성 # 유저 정보 수정 기능 추가 저번에 까먹고 안만든 유저 수정 기능을 할 차례이다. 비밀번호는 따로 암호화를 해줘야하기에 비밀번호 빼고 다른 정보들만 수정 가능하게 만들었다. # serializers.py class UserSerializer(serializers.ModelSerializer): class Meta: model = User fields=['id', 'username','nickname', 'email', 'gender', 'age'] gender_list = ( ('남', '남'), ('여', '여') ) username = serializers.CharField(max_length=20) # 아이디 email = serializers.EmailField() nickname = seria..
Django 기초 + 유저 기능 만들기 # 개발 전 git 관리 졸업 프로젝트 기능과 디자인을 구체화했으니 기능을 만든다. 먼저, 기능을 구별해서 만들기 위해 branch를 분리했다. 기능이 완성될 때마다 merge를 해준다. 원래 다른 사람들이 체크하고 충돌안나는지 확인하고 복잡하지만 1인 개발인 나는 그런거 신경쓰지 않는다! 작업할 branch 업데이트 완료! commit하고 push할 때 따로 만들어줘도 된다. 근데 그냥 지금 옮김. # 장고란? Django는 가장 많이 사용되는 Python 기반 웹 프레임워크 중 하나이다. MTV 패턴으로 제작하고, Model과 DB의 연동이 쉽다. 또 관리자 페이지나 여러 편리한 로직을 따로 제공하여 처음 접하기 쉬움. 게다가 ORM을 제공한다. 쉽고 Model을 짜면 Django가 알아서 DB를 짜..
졸업 프로젝트 기술 스택 + Django 초기 셋팅하기 # 프로젝트 소개+기술 스택 우리 팀의 주요 컨셉은 음악 + 위로 이다. 사람들의 위로 댓글을 TTS를 통해 다양한 voice로 변환한 후 BGM + 앨범 표지가 될 그림과 합쳐 하나의 위로 앨범을 만드는 것이 목표인 웹서비스이다. '벗어나게 만들다'라는 뜻을 가진 'dislodge'에서 착안하여 자신의 위로나 불안에서 벗어나길 바라는 마음으로 우리 서비스의 이름은 로 결정했다. 기술 스택은 다음과 같다. AI API를 만들고 배포하는 프레임워크는 확실하지 않다. Flask 혹은 FastAPI를 많이 사용하는데, 멘토님께 들은 바로는 MentoML이라는 프레임워크도 배포가 편하고 가벼워서 AI를 돌리기 편하다고 하셨다. 아마 AI를 직접 돌리고 배포하면서 수정할 것 같다. 팀 작업을 위한 기초 작업들을 ..