[ Python ] Django로 웹 서비스 개발하기 ( 7. test code, template, css )

peter_yun
6 min readFeb 9, 2017

--

장고로 시작하는 2017년

본 글은 코드스쿼드가 진행하는 인프런의 장고 강의를 바탕으로 함
(참고 : http://bit.ly/2jE3ARl )

장고 테스트 코드 작성

이전 포스팅에서 위와 같은 모델을 생성하였다.

  • 모델의 generate 가 제대로 작동하는지 확인하기 위해서는 아래와 같이 test.py를 활용한다.

test.py에 위와 같이 코드를 작성하였다.
+ self.assertTrue() : 괄호 안의 코드가 참이 되어야 정상적으로 출력한다.

아래의 명령어로 test를 실행한다.

python manage.py test 

출력된 결과는 아래와 같다.
-현재 날짜
-5개의 로또 번호

  • self.assertTrue()안의 값이 FALSE이면?
    아래와 같이 출력된다.
괄호안의 값이 FALSE인 경우

뷰와 템플릿 연동

지금까지 model과 view에 대해서는 다뤄보았다
이번 장에서는 template에 대해서 알아본다

  • 우선 urls.py를 아래와 같이 수정해보자

이제는 url을 변경해야 접속이 됨을 알 수 있다.

  • 뷰를 수정해보자. 자세한 설명은 주석에 달아두었다.

다시 브라우저로 접속을 해보지만 아래와 같이 템플릿이 없다는 이유로 웹페이지가 뜨지 않는다.

  • 템플릿을 만들어 보자
    - lotto 안에 templates-lotto-default 순으로 다시 만들어 주어야 한다.
    *default 뒤에는 .html을 붙여 default.html로 만들어야 한다.

이제 defalut 템플릿에 아래와 같이 준비된 코드를 입력해본다.

<!DOCTYPE html>
<html lang="ko">
<head>
<title>My Little Lotto</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap-theme.min.css">
<link href="//fonts.googleapis.com/css?family=Space+Mono" rel="stylesheet">
</head>

<body>
<div class="page-header">
<h1>My Lotto Page</h1>
</div>
<div class="container lotto">
<h2>당첨 기원 (2)</h2>
<p> last update:2000/1/1</p>
<p> 1, 10, 15, 20, 30 </p>
</div>
</body>
</html>

다시 url로 접속해보면 아래와 같이 접속이 된다. 템플릿 연동이 완료 되었다.

CSS 넣기

이전에 위와 같이 설정했었는데 이는 static 파일들을 static 디렉토리에서 관리하겠다는 뜻이다.

lotto 폴더에 static-css-lotto.css 순으로 만들어준다.

.page-header {
background-color: #652596;
margin-top: 0;
padding: 20px 20px 20px 40px;
font-family: 'Space Mono', monospace;
}
.page-header h1 {
color: #FFFFFF;
}
.container {
font-family: 'Space Mono', monospace;
}
.container h2 {
color: #b9f442;
}

미리 준비한 코드를 lotto.css 파일에 작성했다.

defaultd.html 템플릿에서도 static 파일을 로드할 수 있도록 위와 같이 코드를 수정하였다.

이제 장고에게 static 파일들이 생겼다는 것을 알려주어야 한다.

python manage.py collectstatic

위와 같이 주르륵 무언가 적용이 되었다.

웹페이지를 보면 css파일이 적용된 것을 알 수 있고 페이지 소스를 보면 css 파일의 경로가 지정된 것을 확인할 수 있다.

정리

이로서 모델과 뷰를 다루고 템플릿까지 연동해보았으며, css파일을 적용해보았다.

--

--