ssung_데이터 엔지니어링/3주차_장고 활용한 API 서버 만들기 5

Django 활용하기(5)

RelatedField question과 user 사이의 관계를 매핑해주는 다양한 방법 존재 # polls_api/serializers.py class UserSerializer(serializers.ModelSerializer): # pk id로 표시 questions = serializers.PrimaryKeyRelatedField(many=True, queryset=Question.objects.all()) # model.py에 __str__ 메소드에 정의된 내용을 표시 questions = serializers.StringRelatedField(many=True, read_only=True) # model.py의 Question 내부의 특정 필드를 지정할 수 있음 questions = serial..

Django 활용하기(4)

User 추가하기 # polls/models.py class Question(models.Model): question_text = models.CharField(max_length=200, verbose_name='질문') pub_date = models.DateTimeField(auto_now_add=True, verbose_name='생성일') # admin이 아닌 일반 user 추가 owner = models.ForeignKey('auth.User', related_name='questions', on_delete=models.CASCADE, null=True) @admin.display(boolean=True, description='최근생성(하루기준)') def was_published_rec..

Django 활용하기(3)

Serialize (직렬화) 모델 인스턴스나 QuerySet과 같은 데이터를 JSON 형식의 파일로 변환하는 작업 프로젝트에서 만든 모델로부터 뽑은 queryset, 즉 모델 인스턴스를 JSON으로 변환 Deserialize JSON 형식의 데이터를 정의된 포맷에 맞추어 다시 모델 인스턴스로 변환하는 작업 serialize 만들기 serialize는 생성 시 유효성 검사를 통과한 data를 기반으로 저장(validated_data) # polls_api/serializers.py from rest_framework import serializers # Question 모델 불러오기 from polls.models import Question class QuestionSerializer(serializer..

Django 활용하기(2)

뷰 (views) 와 템플릿 (templates) order_by() 쿼리셋을 정렬하기 위한 메서드로 특정한 필드를 기준으로 오름차순 or 내림차순의 형태로 정렬가능 order_by() 뒤에 슬라이싱 [:]을 통해 범위 지정 가능 render() HTTP 요청을 받아 원하는 템플릿 파일을 렌더링하여 응답 인자로써는 request, 템플릿 파일 경로, Context 순으로 변수를 받음 # polls/views.py def index(request): # Question 목록에서 order_by를 통해 5개의 목록을 가지고 옴 latest_question_list = Question.objects.order_by('-pub_date')[:5] context = {'first_question': latest_..

Django 활용하기(1)

Django 쉽고 빠르게 웹사이트를 개발할 수 있도록 돕는 구성요소로 이루어진 웹 프레임워크 Django 가상환경 설정 서로 다른 유형과 목적의 프로젝트를 한 공간에 넣어 관리하면, 매번 하나의 프로젝트를 실행할 때마다 환경을 체크고 변경해주어야 함 심한 경우네는 프로젝트 간의 충돌이 발생할 수도 있음 이와 같은 문제 방지를 위해 Python 프로젝트를 가상환경에 만들어 사용 명령어 (cmd 사용) # 가상환경 생성 py -m venv project_name # 생성한 가상환경 활성화 project_name\scripts\activate.bat Django 설치 # Django 설치하기 py -m pip install Django Project 생성 # mysite 라는 프로젝트 생성 django-adm..

728x90