보통 프론트엔드의 경우는 react, vue.js 와 같은 라이브러리를 이용하여 관리하기도 하지만 간단한 웹사이트 제작시에는 장고 자체 프로젝트, 앱 폴더 내에 간단하게 작성하게 된다. 이때 폴더들의 관리 방법에 대해 알아보자. 1. templates (HTML) templates 폴더 안에는 html 문서를 저장하고 관리한다. settings.py의 TEMPLATES 안에 HTML 문서를 찾는 temlpates 폴더 위치가 정의되어 있다. 기본 설정의 경우 자동으로 app 폴더 내의 templates 폴더를 찾게 된다. 만약 프로젝트 내의 모든 html 문서를 한번에 관리하고 싶다면 경로를 바꿔서 한 폴더에 몰아 넣는것도 가능하다. 주의할 점이 한가지 있다면, 장고는 html 문서를 검색할 시 모든 앱..
장고를 사용할 때 내가 만든 코드가 원하는대로 동작하는지 확인 할 필요가 있다. 코드가 잘 동작하는지 확인하기 위해서 매번 서버를 실행하며 입력값을 넣고,, 출력이 무엇인지 확인할 수도 있지만, 이렇게 테스트를 진행하면 불편하고, 예상치 못한 예외상황이 발생할 수(?)도 있다. 테스트를 코드로 작성하여 자동화 해두면, 사용하기도 편하고 각종 경우의 수를 만들기도 편하다. 작성 방법에 대해 알아보자. 장고에서 앱을 새로 만들면 tests.py 라는 파일이 생성된다. 이 파일에 테스트 코드를 작성하면 해당하는 앱안에 만들어둔 views.py나 models.py등이 제대로 작동되는지 확인 할 수 있다. from django.urls import reverse from django.test import Test..
장고 모델 AutoField class AutoField(**options) 자동으로 증가하는 정수 필드, 보통 사용하지 않는다. 보통 id 필드는 pk로 자동으로 만들어 진다. BigAutoField class BigAutoField(**options) AutoField 보다 비트수가 더 많다. 64 비트 정수. BigIntegerField class BigIntegerField(**options) IntegerField 보다 큰 정수 필드 64 비트 정수. BinaryField class BinaryField(max_length=None, **options) 바이너리 데이터를 저장하는 필드. bytes, bytearray, memoryview 가 저장 될 수 있다. BooleanFi..
from django.views import generic 장고에서 쓰이는 제네릭 뷰 중 TemplateView 에 대해 알아보자. CBV형식으로 views 파일을 작성할 경우 다양한 제네릭 뷰에 대한 사용법을 알고 있어야한다. 코드를 가능한 간결하게 작성할 수 있다. 코드의 재사용률을 높일 수 있다. 에러 핸들링 에는 FBV를 사용한다. 템플릿 뷰는 다음과 같이 상속하여 사용할 수 있다. views.py class IndexView(generic.TemplateView): template_name = "plagiarism/index.html" urls.py from django.urls import path from myapp.views import IndexView urlpatterns = [ ..
ContextMixin 클래스에 정의되어 있는 함수이다. CBV를 작성할때, 만약 HTML 문서로 보내고 싶은 객체가 존재할 경우 이용한다. def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) context['number'] = random.randrange(1, 100) return context 위의 메서드를 재정의(오버라이딩) 하게 되면 number 라는 이름을 갖는 객체가 추가되어 전달된다. hello world! {{ number }} 위와같이 사용이 가능하다. 결과 화면