- DB
- 완전검색
- 그리디
- 통계학
- migrations
- create
- SQL
- regexp
- 큐
- 쟝고
- Article & User
- N:1
- Vue
- 백트래킹
- outer join
- Queue
- Tree
- distinct
- Django
- ORM
- drf
- 이진트리
- M:N
- count
- 트리
- delete
- update
- 뷰
- stack
- 스택
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
목록SW (84)
데이터 분석 기술 블로그

1. Client-side frameworksFront-end Development는 웹사이트와 웹 애프리케이션의 사용자 인터페이스(UI)와 사용자 경험(UX)을 만들고 디자인하는 것입니다. HTML, CSS, JavaScript 등을 활용해서 사용자가 직접 상호작용하는 부분을 개발합니다. Client-side frameworks는 클라이언트 측에서 UI와 상호작용을 개발하기 위해 사용되는 JavaScript 기반 프레임워크입니다.2. SPASingle Page Application(SPA)는 페이지 한 개로 구성된 웹 애플리케이션입니다. 즉, 웹 애플리케이션의 초기 로딩 후 새로운 페이지 요청 없이 동적으로 화면을 갱신하며 사용자와 상호작용하는 CSR 방식의 웹 애플리케이션입니다.Client-side ..

1. OpenAPI Specification (OAS)RESTful API를 설명하고 시각화하는 표준화된 방법으로 API에 대한 세부사항을 기술할 수 있는 공식 표준입니다. 2. drf-spectacular 라이브러리DRF를 위한 OpenAPI 3.0 구조 생성을 도와주는 라이브러리입니다.설치 및 등록하기$ pip install drf-spectacular# settings.pyINSTALLED_APPS = [ ..., 'drf_spectacular', ...,]관련 설정 코드 입력하기 (OpenAPI 스키마 자동 생성 코드)# settings.pyREST_FRAMEWORK = { # YOUR SETTINGS 'DEFUALT_SCHEMA_CLASS': 'drf_spectacul..

1. Article → Comment 간 역참조 관계를 활용한 JSON 데이터 재구성아래 2가지 사항에 대한 데이터 재구성하기단일 게시글 조회 시 해당 게시글에 작성된 댓글 목록 데이터도 함께 붙여서 응답단일 게시글 조회 시 해당 게시글에 작성된 댓글 개수 데이터도 함께 붙여서 응답2. 단일 게시글 + 댓글 목록Nested relationships모델 관계상으로 참조하는 대상은 참조되는 대상의 표현에 포함되거나 중첩될 수 있다.이러한 중첩된 관계는 serializers를 필드로 사용하여 표현 가능# articles/serializers.pyclass CommentSerializer(serializers.ModelSerializer): class Meta: model = Comment ..

댓글 조회 시 게시글 출력 내역 변경댓글 조회 시 게시글 번호만 제공해 주는 것이 아닌 '게시글의 제목'까지 제공하기필요한 데이터를 만들기 위한 Serializer는 내부에서 추가 선언 가능# articles/serializers.pyclass CommentSerializer(serializers.ModelSerializer): class ArticleTitleSerializer(serializers.ModelSerializer): class Meta: model = Article fields = ('title',) article = ArticleTitleSerializer(read_only=True) class M..

DELETE & PUT단일 댓글 삭제 및 수정을 위한 view 함수 작성# articles/views.py@api_view(['GET', 'DELETE', 'PUT'])def comment_detail(request, comment_pk): comment = Comment.objects.get(pk=comment_pk) if request.method == 'GET': serializer = CommentSerializer(comment) return Response(serializer.data) elif request.method == 'DELETE': comment.delete() return Response(status..

POST단일 댓글 생성을 위한 url 및 view 함수 작성# articles/urls.pyurlpatterns = [ ..., path('articles//commments/', views.comment_create),]serializer 인스턴스의 save() 메서드는 특정 Serialzier 인스턴스를 저장하는 과정에서 추가 데이터를 받을 수 있음# articles/views.py@api_view(['POST'])def comment_create(request, article_pk): article = Article.objects.get(pk=article_pk) serializer = CommentSerializer(data=request.data) if serializ..

1. 사전 준비1-1. Comment 모델 정의Comment 클래스 정의 및 데이터 베이스 초기화# articles/models.pyclass Comment(models.Model): artilce = models.ForeignKey(Article, on_delete=models.CASCADE content = models.TextField() created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True)Migration 및 fixtures 데이터 로드$ python manage.py makemigrations$ python manage.py migrate$ pyt..

1. DELETE게시글 데이터 삭제하기요청에 대한 데이터 삭제가 성공했을 경우는 204 No Content 응답# articles/views.py@api_view(['GET', 'DELETE'])def article_detail(request, article_pk): article = Article.objects.get(pk=article_pk) if request.method == 'GET': serializer = ArticleSerializer(article) return Response(serializer.data) elif request.method == 'DELETE': article.delete() return ..