django에 대한 기본적인 설치를 마쳤으니 이젠, django를 이용하여 프로젝트를 진행해보자.
기본적으로 django에서는 하나의 프로젝트에 다수의 앱을 만들어 서비스를 제공할 수 있다,
여기서, 프로젝트(project)와 앱(app)에대해 간단한 설명하자면
프로젝트는 내가 구현하고 싶은 서비스의 큰 틀, 주제에 해당하고
앱은 그 서비스를 구현하기위한 기능들이라고 이해하면 된다.
예를들어, 내가 어떤 커뮤니티 웹 사이트를 제공하고 싶을 때
그 웹사이트에서는 당연히 회원들이 이용할 것이기 때문에 회원가입, 로그인 등의 기능과
커뮤니티에서의 글 작성, 댓글작성 등 다양한 기능들을 제공할 것이다.
이 때, 프로젝트와 앱은 각각 아래와 같이 나타낼 수 있다.
- 프로젝트 : 커뮤니티 웹 사이트
- 앱 : 회원가입, 로그인, 글 자성, 댓글작성 등
폴더, 파일관계와 동일하다 생각하면 이해하기 쉽다. / 폴더(프로젝트), 파일(앱)
django project
본격적으로 프로젝트폴더를 만들어보자.
프로젝트는 터미널(콘솔) 창에서 한 줄의 명령어로 생성할 수 있다. (study 프로젝트 생성)
django-admin startproject 프로젝트명
만약 터미널창이 보이지 않는다면
View - Console로 터미널창을 만들거나 단축키 F6을 누르면 된다.
이후 프로젝트 폴더를 열어보면 하위에 프로젝트생성과 함께 만들어진 파일들이 있다.
각각에 대한 자세한 내용은 프로젝트를 진행하며 설명하겠다.
프로젝트를 만들었으니 앞으로 해야할 일은? 프로젝트의 기능을 구현하기 위한 앱을 생성해야한다.
하지만, 그 전에 프로젝트를 생성하면 습관적으로 해줘야 할 일들이 있다.
프로젝트 폴더 내부에 있는 settings.py 파일을 열어보자.
파일에는 121줄에 걸치는 많은 코드가 존재하는데 우리가 현재 수정해줘야 할 코드는 3가지가 있다.
- ALLOWED_HOSTS (28번째 줄)
- LANGUAGE_CODE (106번째 줄)
- TIME_ZONE(108번째 줄)
각각의 기능과 어떻게 초기설정을 해줘야하는지 알아보자.
1. ALLOWED_HOSTS
접속 허용 호스트명 등록하기
ALLOWED_HOSTS를 그대로 직역하면 '허용된 호스트들'을 의미하는데 말 그대로 django를 활용해 사이트를 완성 후
서비스를 배포할 때 해당 사이트에 접속을 허용할 수 있는 호스트(도메인)를 입력하는 내용이다.
지금 우리는 프로젝트를 실제로 배포할것이 아닌 django의 실습을 진행할 것이기 때문에 모든 호스트들을 허용한다는 의미를 가진 * 문자를 이용하여 다음과 같이 입력해주자.
만약, 해당 리스트를 빈공간으로 두면 허용된 호스트가 없으므로 서버를 돌릴 때 오류가 발생한다
ALLOWED_HOSTS = ['*']
훗날 본인이 django를 통해 완성한 프로젝트를 서버에 배포할일이 생길경우에는 모든 호스트들을 허용하면 보안상의 문제가 생길 수 있으니 이 때는 해당 리스트에 허용할 호스트값들을 직접 작성해줘야 한다.
2. LANGUAGE_CODE
언어 설정 - django서버의 언어를 설정하는 내용
기존에는 LANGUAGE_CODE = 'en-us'로 영어로 설정이 되어있는데
LANGUAGE_CODE = 'ko/kr'
위 처럼 설정을 변경해주면 django 서버를 실행시켰을 때 한국말로 출력이 된다.
3. TIME_ZONE
시간 설정 - django서버의 시간을 설정하는 내용
언어와 마찬가지로 TIME_ZONE = 'UTC' 로 기본설정되어있는 내용을 아래와 같이 변경해주면 된다.
TIME_ZONE = 'Asia/Seoul'
1번 설정은 django 실습을 위한 설정으로 초기설정을 해주지 않으면 서버를 돌릴 때 오류가 나타나지만
2, 3번은 django 서버를 우리나라의 언어, 시간대로 설정하여 편리하게 이용하기 위함이다.
따라서 2, 3번 설정은 기본값 그대로 두어도 서버를 발생할 때 오류가 나지는 않는다.
django app
위 과정에서 프로젝트생성과 초기설정을 마쳤다면 이제는 app을 생성해보자.
생성하기전 프로젝트(study)디렉토리를 다시 살펴보면 manage.py 파일이 존재하는 것을 확인할 수 있다.
manage.py는 django 프로젝트를 진행할 때 사용하게 될 명령어를 실행할 수 있도록 도와주는 파일이라고 생각하면 된다.
즉, 프로젝트를 생성한 이후 대부분의 명령어는 manage.py파일로서 실행하게 될 것이고 manage.py는 파이썬 파일이기 때문에
python manage.py 명령어
대부분의 명령어는 위 처럼 표현될 것이다.
이 때 주의할점은 manage.py를 실행시키기 위해서는 현재 경로의 바로 아래에 manage.py가 존재해야한다는 점!
확인하기 위해서는 해당경로에서 터미널창에 ls 명령어를 입력했을 때 manage.py가 나오는지 확인해주면 된다.
ls 명령어를 입력하였을 때 위와같은 화면이 나온다면(manage.py가 현재 경로의 바로 아래에 존재한다면)
앱을 생성하는 것은 간단하게 아래와 같이 생성할 수 있다.
python manage.py startapp 앱이름
python manage.py startapp hello 명령어로 앱을 생성하면 기존에 만들었던 프로젝트(study)하위에
hello 앱 폴더가 생성된 것을 알 수 있고 프로젝트를 생성했을 때처럼 앱을 생성할 때도 하위에 여러개의 파일들이 생성된 것을 확인할 수 있다.
각각의 파일 역시 프로젝트를 진행하며 필요시 부연설명
프로젝트를 처음 생성했을 때 settings.py에서 3가지를 습관적으로 변경해주었던 것처럼
앱을 생성할 때도 기본적으로 해줘야할 것이 있다.
settings.py를 다시 열어보면 INSTALLED_APPS (33번째줄)가 있다.
'설치된 앱들' 이라는 뜻인데 우리가 지금해줘야 할 일은 설치한 hello 앱을 등록해주는 것이다.
등록은 간단하게 INSTALLED_APPS에서 가장 아래에 설치한 앱 이름을 위와 같이 적어주면 된다.
지금까지 우리는 django에서 프로젝트, 앱 생성과 기본적으로 해줘야 할 초기설정들에 대해서 알아보았다.
python manage.py runserver 8080 또는 python manage.py runserver $IP:$PORT
현재 상태에서 터미널에 위 명령어를 입력하여 서버를 실행시켜보자.
그러면 위와 같이 터미널창 우측상단에 URL이 적혀있는 작은 박스형태의 글이 나타난다. 해당 URL을 클릭해보자.
서버종료는 ctrl + c 를 누르면된다.
위 화면이 나오면 django 서버가 문제없이 돌아가고 있다고 생각하면 되겠다.
앱을 생성하기만 했지 그 앱의 기능을 부여하거나 어떤 추가적인 작업을 하지 않았기 때문에 굉장히 초라한 화면이 나오는데 앞으로 우리는 앱에 기능들을 넣고 그 기능을 표현할 template(.html파일)을 사용자에게 제공하여 다양한 서비스들을 만들어내는 작업을 진행할 것이다.
정리
django 프로젝트 생성
django-admin startproject 프로젝트명
settings.py에서 ALLOWED_HOSTS, LANGUAGE_CODE, TIME_ZONE 초기설정해주기
app 생성
python manage.py startapp 앱이름
settings.py에서 INSTALLED_APPS에 생성한 앱 등록하기
서버 실행
python manage.py runserver 8080 또는 python manage.py runserver $IP:$PORT
서버종료는 ctrl + c
'django' 카테고리의 다른 글
#django day6 (0) | 2020.04.30 |
---|---|
#django day5 (0) | 2020.04.28 |
#django day4 (0) | 2020.04.28 |
#django day2 (0) | 2020.04.25 |
#django day1 (0) | 2020.04.24 |
댓글