Python 썸네일형 리스트형 [Python/Unittest] Unittest Unittest?Python의 테스트 프레임워크인 unittest는 코드 상의 특정 기능을 테스트하기 위해 작성된다. 일반적으로 특정 입력을 주고 예상된 출력이 나오는지의 형태로 테스트한다. 최근 CI/CD의 자동화와 안정성이 중요해지면서 전체 코드의 테스트 커버리지의 중요성도 함께 높아졌는데, 이 때 Python코드에서는 unittest가 일반적으로 사용된다. unittest는 테스트 케이스를 class 단위로 작성하고, 그 안에 포함된 여러가지 메서드를 통해 기능을 테스트한다. 아래 코드는 unittest의 예시다.import unittestclass TestStringMethods(unittest.TestCase): def test_upper(self): self.assertEqu.. 더보기 [Django] RelatedField RelatedField1. PrimaryKeyRelatedField 현재 User List를 살펴보면, 각 유저의 question 필드에 질문 레코드의 id값이 표시되는 것을 확인할 수 있다. 이것은 serializers.py에서 UserSerializer를 설정할 때 PrimaryKeyRelatedField를 사용했기 때문이다.# mysite/polls_api/serializers.pyclass UserSerializer(serializers.ModelSerializer): # questions 필드를 명시하는 이유: User 모델과 Question 모델 간의 관계를 보여주기 위함 questions = serializers.PrimaryKeyRelatedField(many=True, quer.. 더보기 [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)#.. 더보기 [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] 모델 메소드(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] 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.. 더보기 [Django] Django 기본 설정 장고 설치pip install Django기본적으로 가상환경을 따로 만들고 라이브러리를 설치하는 것이 좋으니 참고! Django Projcet 생성하기django 프레임워크를 본격적으로 사용하기 위해서는 django project를 생성해주어야 한다. 터미널 창에 아래와 같은 코드를 입력해보자.django-admin startproject mysite코드 입력 후 mysite라는 폴더가 하나 생성된 것을 알 수 있다. 그 안에 진입하면 여러가지 파이썬 파일이 생성된 것을 알 수 있다. 이들은 django 명령어를 터미널에서 쓸 수 있도록 도와주는 파일들이다. 이 중 manage.py 파일을 이용해 설치가 잘 되었는지 확인해보자.# mysite 폴더로 이동cd mysitepython manage.py ru.. 더보기 이전 1 2 3 4 ··· 12 다음