코딩한걸음
[Django 50문 50답] Django의 MTV 패턴 시스템은 무엇입니까?
Python/Django 2023. 10. 25. 12:00

Q. Django의 MTV 패턴 시스템은 무엇입니까? Django의 MTV 패턴은 Model-Template-View의 약자로 웹 어플리케이션의 구조를 나타냅니다. Model : 데이터베이스와의 상호작용을 담당하며, 데이터의 구조와 동작(CRUD 등)을 정의합니다. Template : 사용자에게 보여질 화면, 즉 프론트엔드 부분을 담당합니다. HTML 코드 내에 Django의 템플릿 언어를 사용하여 동적으로 데이터를 표현합니다. View : 사용자의 요청을 받아 로직을 처리하고, 적절한 응답을 반환하는 역할을 합니다. MVC 패턴에서의 Controller와 비슷한 역할을 하지만, 사용자에게 어떤 데이터를 어떻게 보여줄 것인지 결정하는 부분까지 담당합니다. 이 패턴은 소프트웨어의 각 구성요소의 역할을 분명..

article thumbnail
[Django 50문 50답] Django의 프로세스는 어떤 순서로 동작합니까?
Python/Django 2023. 10. 25. 08:00

Q. Django의 프로세스는 어떤 순서로 동작합니까? Django의 동작 프로세스는 크게 요청-응답 주기로 볼 수 있습니다. 사용자의 요청이 들어올 때, 처음으로 Django의 URL 디스패처가 해당 요청의 URL을 해석하여 적절한 뷰 함수나 클래스에 연결합니다. 이 때, 미들웨어들이 순차적으로 요청을 가공하거나 필터링할 수 있습니다. 선택된 뷰에서는 요청을 처리하기 위해 필요한 비즈니스 로직을 수행하며, 데이터베이스와 상호작용이 필요할 경우 ORM을 통해 쿼리를 수행합니다. 뷰에서 처리가 완료되면, 응답 객체를 생성하고 다시 미들웨어를 거쳐 최종적으로 사용자에게 응답을 반환하게 됩니다. 질문 의도 기본 지식 확인 : Django의 기본적인 동작 원리와 구조를 이해하고 있는지 요청-응답 주기 이해 : ..

[DRF] 예제 프론트엔드와 CORS
Python/Django 2023. 5. 3. 02:29

프론트엔드 // index.js console.log("자바스크립트 불러오기") vscode의 확장 프로그램인 live server 를 실행하고f12를 누르고 콘솔을 선택하면 다음과 같이 뜬다 // index.js console.log("자바스크립트 불러오기") window.onload = async function loadArticles(){ const response = await fetch('http://127.0.0.1:8000/articles/',{method:'GET'}) response_json = await response.json() console.log(response_json) } live server의 포트는 5500번이고 우리가 돌리는 서버의 포트는 8000번이기 때문에포트가 달라..

[DRF] class형 view로 바꾸기
Python/Django 2023. 5. 3. 02:29

💡이 포스팅은 window, vscode 기준으로 작성되었습니다. 참고자료https://www.django-rest-framework.org/tutorial/3-class-based-views/ FBV > CBV로 바꾸기 ## articles/views.py ... from rest_framework.views import APIView class ArticleList(APIView): def get(self, request, format=None): articles = Article.objects.all() serializer = ArticleSerializer(articles, many=True) return Response(serializer.data, status=status.HTTP_200_OK..

article thumbnail
[DRF] Swagger 적용해보기
Python/Django 2023. 5. 3. 02:29

💡이 포스팅은 window, vscode 기준으로 작성되었습니다. 참고자료https://drf-yasg.readthedocs.io/en/stable/readme.html Swagger 적용하기 ## console pip install drf-yasg pip freeze > requirements.txt ## drf_project/settings.py INSTALLED_APPS = [ ... 'drf_yasg', ... ] ## drf_project/urls.py from django.contrib import admin from django.urls import path, include, re_path from rest_framework import permissions from drf_yasg.view..

[DRF] Serializer
Python/Django 2023. 5. 3. 02:29

💡이 포스팅은 window, vscode 기준으로 작성되었습니다. serializers.py 만들고 viwes.py 에 적용 ## articles/serializers.py from rest_framework import serializers from .models import Article class ArticleSerializer(serializers.ModelSerializer): class Meta: model = Article fields = '__all__' ## articles/views.py ... from articles.serializers import ArticleSerializer @api_view(["GET", "POST"]) def index(request): articles =..

[DRF] App생성과 세팅
Python/Django 2023. 4. 28. 10:40

💡이 포스팅은 window, vscode 기준으로 작성되었습니다. 앱 만들기 articles 앱 생성 ## console python manage.py startapp articles 장고에 등록 ## drf_project/settings.py INSTALLED_APPS = [ "django.contrib.admin", "django.contrib.auth", "django.contrib.contenttypes", "django.contrib.sessions", "django.contrib.messages", "django.contrib.staticfiles", 'rest_framework', 'articles', ] 모델 생성 ## articles/models.py class Article(models..

[DRF] 프로젝트 세팅
Python/Django 2023. 4. 26. 16:51

💡이 포스팅은 window, vscode 기준으로 작성되었습니다. 안보일 경우 우측하단의 버튼을 눌러 라이트모드로 바꿔주세요! 프로젝트 세팅참고문서 : https://www.django-rest-framework.org/ 가상환경 만들고 패키지 설치하기 원하는 곳에 프로젝트 디렉토리를 만들고 그 디렉토리로 이동한다 새로운 프로젝트를 만들 때 습관처럼 만든다 ## console python -m venv venv # 환경이 만들어진 후 가상환경 활성화 venv\Script\activate # 활성화가 됬다면 한번 확인해보자 pip list # 가상환경 비활성화는 deactivate 설치된 패키지가 2개만 있다면 정상 작동하는 것이다 django와 drf도 설치 ## console pip install dj..