본문 바로가기

반응형

Minding's Programming

[Django] Serilaizer 시리얼라이저(Serilaizer)?시리얼라이저는 모델 인스턴스나 QuerySet과 같은 데이터를 JSON 파일로 변환하는 작업(Serialize) 또는 JSON을 모델 인스턴스로 변환하는 작업(Deserialize)을 할 때 쓰이는 매개체다. 시리얼라이저 구현우리가 이전에 만들었던 Question과 Choice 모델을 통해서 시리얼라이저를 구현한 뒤, Serialize와 Deserialize를 시도해보자. 우선 터미널 창에서 mysite 폴더로 이동한 다음, 아래와 같은 명령어를 입력한다. polls라는 app을 api형태로 구현할 것이기 때문에, app 이름을 polls_api로 설정했다.python manage.py startapp polls_api mysite 폴더 내부를 살펴보면 아래와 같이 po.. 더보기
[Django] Admin 페이지 편집 Admin 페이지는 아래와 같이 모델을 임포트해 등록만 해주면 해당 페이지에서 모델에 대한 CRUD가 가능하다는 편리함이 있었다. 하지만 CRUD는 어쩌면 가장 단순한 기능일지도 모른다. 관리자의 입맛에 맞게 Admin 페이지를 편집한다면, 더 편리하게 사용할 수 있을 것이다. Admin 편집 페이지 커스터마이징polls 폴더 아래에 있는 admin.py를 아래와 같이 수정해보자. Question 모델을 직접 설정한 class(QustionAdmin) 형식으로 등록해준다.# mysite/polls/admin.pyfrom django.contrib import adminfrom .models import *# Register your models here.admin.site.register(Choice)#.. 더보기
[Python] 딕셔너리 max value에 대한 key 찾기 최대 value에 대한 key 찾기# di.get을 key로 이용하는 방법max(di,key=di.get)# 리스트 comprehension 이용하는 방법[k for k,v in di.items() if max(di.values()) == v]max(di)를 하면 di의 key값 중 최댓값이 출력됩니다. key=di.get을 사용했는데, di.get은 일반적으로 di.get(key)와 같이 쓰여 해당 key에 대한 value를 출력해주는 함수입니다. max의 key로 di.get함수를 사용했는데 key를 입력으로 value를 출력하기 때문에 value의 최댓값을 기준으로 하여 di의 key를 출력해주게 됩니다. 다음으로 사용한 것은 리스트 컴프리핸션입니다. max(di.values())를 하게 되면 딕셔.. 더보기
[Django] 폼(Forms) 폼(Forms)폼은 사용자로부터 데이터를 받을 수 있는 형식을 말한다. 지난 시간([Django] 뷰(views)와 템플릿(templates))에서 다룬 상세 페이지에서 선택지가 단순히 노출되는 것이 아닌 사용자로부터 선택할 수 있게 만들어 보려고 한다. detail.html 수정 {% csrf_token %} {{ question.question_text }} {% if error_message %} {{ error_message }} {% endif %} {% for choice in question.choice_set.all %} {{ choice.choice_text }} {%.. 더보기
[Django] 뷰(views)와 템플릿(templates) 뷰(Views)뷰는 말 그대로 '보여주는' 역할을 한다. HTML 페이지 또는 모델 등에서 받아온 데이터를 사용자에게 노출시켜 준다. mysite 아래에 있는 urls.py에서 해당 URL에 요청이 오면, views.py에서 지정된 함수에 의해 해당 화면을 노출시킨다.# mysite/urls.pyfrom django.contrib import adminfrom django.urls import path, include# polls/ URL 뒤에는 polls 폴더 내 urls.py 설정을 따름urlpatterns = [ path('polls/', include('polls.urls')), path('admin/', admin.site.urls),]# mysite/polls/urls.pyfrom .. 더보기
[Django] 모델 메소드(Model Method) 모델 메소드모델 메소드는 모델을 클래스로 선언할 때 아래에 작성하는 함수를 메소드로 사용하는 것을 말한다. 예를 들어, Question 모델(클래스)에 pub_date 기준 오늘 만들어진 레코드인지를 판단하는 메소드를 만들어본다고 해보자.from django.db import modelsfrom django.utils import timezonefrom datetime import timedeltaimport datetime# model 생성class Question(models.Model): question_text = models.CharField(max_length=200) pub_date = models.DateTimeField(auto_now_add=True) # pub_date가 지.. 더보기
[Django] 모델 필터링(Model Filtering) Django Shell에서 모델 필터링모델 필터링은 해당 모델에서 내가 사용하고 싶은 레코드만 필터링해 조회하는 것을 말한다. Django Shell에서는 어떤 방법으로 모델 필터링을 할 수 있을까?1. get() 메서드>>> from polls.models import *# id값으로 조회>>> Question.objects.get(id=1)# 텍스트 시작값으로 조회>>> Question.objects.get(question_text__startswith='야구')>>> q= Question.objects.get(question_text__startswith='야구')>>> q.pub_datedatetime.datetime(2024, 10, 7, 5, 17, 5, 82114, tzinfo=datetim.. 더보기
[Django] Django Shell 사용해보기 Django Shell?Django shell은 python shell 등과 비슷한 형태를 가지고 있지만, Django 환경을 다룰 수 있는 shell이다.❯ python manage.py shellPython 3.9.0 (default, Nov 15 2020, 14:28:56) [GCC 7.3.0] on linuxType "help", "copyright", "credits" or "license" for more information.(InteractiveConsole)>>>위와 같이 manage.py의 shell 함수를 실행시켰는데, 파이썬 shell과 거의 유사한 모습을 보여준다. Django Shell로 모델 활용하기1. 조회>>> from polls.models import *>>> Quest.. 더보기

728x90