당신은 멋쟁이, 우리는 장고쟁이~

0%

Admin form 고치기


Question 모델을 admin.site.register(Question) 을 사용해서 polls/admin.py 에 등록을 하면,


Django 는 기본 어드민 표시 양식을 만들수 있었습니다. 그러나, 때때로 우리는 관리자 양식이 조금 다르게 보이고 작동하길 원합니다.


관리자 페이지가 조금 다른 모습과 조금 다른 동작을 원한다면,


Django 에 객체를 등록할때, 이 옵션에 대해서 얘기해 주어야 합니다.

더 읽어보기 »

Background-image 추가하기


다음은, 배경 이미지를 추가해 보는것입니다.


polls/static/polls/ 폴더 아래에 서브 폴더로 images 라는 폴더를 생성합니다.


이 폴더 안에 background.jpg 라는 이미지를 저장 했습니다.


polls/static/polls/background.jpg 를 저장 하였으면,

polls/static/polls/style.css 에 아래 내용을 추가해서, 배경 이미지가 나오게 합니다.


더 읽어보기 »

Django에서 정적 파일 사용하기


이번 튜토리얼은 part 5 에서 이어서 진행 합니다.


Web-poll 어플리케이션을 만들었고, 이제 stylesheet 과 이미지들을 추가해야 할때입니다.



서버에서 생성되는 HTML 파일 외에

웹 어플리케이션은 보통 이미지나, JavaScript 혹은 CSS 같은

추가적인 파일을 가져야 합니다.


이 파일들은 웹페이지를 완성할때 필요합니다.

Django에서는, 이 파일들을 “static files” 라고 불릅니다.


더 읽어보기 »

더많은 테스트가 좋습니다



우리가 작성한 테스트는 우리의 제어 능력을 벗어나 보일지 모릅니다.


이대로 가다가는, 테스트에 있는 코드가 어플리케이션에 있는 코드보다 많아질것이고,


미심쩍은 반복만 늘어날것입니다. 기타 코드와 비교해서 우아할것 같아 보이지 않기도 합니다.



상관 없습니다! 코드가 자라나게 냅둬도 되니다 ㅎㅎ


가장 좋은 방법은 테스트를 한번만 작성하고, 잊고 사는겁니다. 테스트는 프로그래밍 개발이 계속 되는동안 그 기능을 계속 수행합니다.


더 읽어보기 »

새로운 view 테스트하기



이제 우리는 runserver 를 통해서 만족스러운 결과를 가질수 있습니다.


브라우저로 사이트를 열어서 과거와 미래 날짜를 가진 Question 을 생성하고, 발행이 완료된 Question 만 리스트 되어야 합니다. shell 세션을 기반으로, tests.py 를 작성해 줍니다.



첫번째로, polls/tests.py 에 reverse 를 추가해 줍니다.


1
from django.urls import reverse

더 읽어보기 »

View 테스트 하기


우리가 작성한 polls 어플리케이션은 구분을 잘 못합니다.


이게 무슨 이야기냐면, polls app은 아무 질문이나 발행하고, pub_date 필드가 미래의 값인것도 발행 가능합니다. 이점은 개선 되어야 할점입니다.



pub_date 를 미래의 날짜로 설정한다는것은,


Question 은 그때 발행은 되지만, 해당 pub_date 날짜가 올때까지 보여지지 않아야 합니다.


더 읽어보기 »

첫번째 테스트 작성하기


버그찾기


운좋게도, polls 어플리케이션에는 고쳐야할 작은 버그가 있습니다.


Question.was_publishd_recently() 메서드는, Question 이 어제 이전에 발행되었거나, Question 의 pub_date 필드가 미래일일 경우에 True 를 반환합니다.


쉘을 통해성 버그를 확인하고 확실하게 찾아냅시다. shell 을 사용해서 날짜가 미래의 날짜로 지정된 질문의 메서드를 확인 합니다.


1
python manage.py shell_plus



더 읽어보기 »

기본테스트 전략


테스트 작성에 접근하는 방식은 많습니다.


어떤 프로그래머들은 “test-driven development” (테스트 기반 개발 방식) 원칙을 따릅니다.


테스트 기반 개발 방식에서는, 개발자들이 실제 코드를 작성하기 전에 테스트를 먼저 작성합니다.



이것은 직관적이지 않아 보일수 있습니다만, 어쨋든 대부분의 사람들이 하는일과 다를바가 별로 없습니다. 문제점들을 묘사하고, 문제점들을 풀기 위해서 코드를 작성합니다.

더 읽어보기 »

자동화된 테스트 소개하기


튜토리얼 part4 에 이어서 진행합니다


튜토리얼을 통해서, 현재까지 Web-poll 어플리케이션을 만들었습니다.


이번 part 5 에서는, 자동화된 테스트를 생성해 봅니다.



자동화 테스트란?



자동화 테스트는 코드의 동작을 체크하는 루틴 입니다.


더 읽어보기 »

Generic 뷰 사용하기


적은 코드가 낫다


Part3 에서 detail() 과 results() 뷰들은 매우 짧지만, 중복이 됩니다.

index() 뷰도 비슷하고, 투표 리스트를 출력합니다.


이 뷰들은 공통적인 기본 웹개발 방법을 대표합니다.


  1. URL 에서 전달된 파라미터에 따라서 데이터를 데이터베이스에서 가져오고
  2. 템플릿을 읽고 처리된 템플릿을 반환합니다

이것은 매우 공통된 부분이기 때문에, 이것을 쉽게 다룰수 있는 generic view 시스템을 Django 가 제공합니다.


더 읽어보기 »