이전 글과 이어지는 글입니다.
프로젝트 폴더 생성
가상환경을 켜고 Django까지 설치를 완료했다면, 이제 직접 프로젝트를 만들어보자.
Django에서 프로젝트를 생성하는 명령어는
django-admin startproject myproject 로, 역시나 터미널에 작성해주고 엔터쳐주면 된다. (가상환경을 반드시 켜준 상태에서 진행해줘야한다)
앞서 가상환경에서도 그랬듯, 밑줄 친 myproject 자리에는 사용자가 원하는 프로젝트의 이름을 적어주면 된다.
나는 내 프로젝트라는 의미에서 심플하게 myproject라고 지어주었다.
그러면 우리의 작업폴더 내에 myproject라는 폴더가 생기고, 그 안에는 같은 이름을 가진 myproject라는 폴더 하나와 manage.py라는 파이썬 파일 하나가 생성된다.
django-admin startproject myproject 명령어는 myproject 폴더 내에 myproject 폴더와 manage.py를 생성해주기 때문에, 자칫 동일한 이름을 가진 두 폴더를 혼동하는 일이 종종 발생하곤한다.
따라서, 상위 폴더의 이름을 다른 이름으로 바꿔줌으로써 이러한 혼동을 방지하곤 한다.
이제 훨씬 알아보기 쉬워졌다.
이제 우리는 django를 이용하는 프로젝트를 만들었다. 이제 프로젝트가 잘 작동하는지 알아보기 위해 서버를 돌려보도록 하겠다.
서버를 돌리기 위해선 djangoproject 폴더 내의 manage.py를 실행시켜줘야하는데, 이를 위한 명령어는 다음과 같다.
python manage.py runserver
그러나 이 명령어를 실행시켜주기전에 한 가지 해줘야할 것이 있다.
바로, 우리의 working directory 위치를 확인하는 것이다.
터미널을 보면 우리가 현재 어떤 위치에 터미널 명령어를 입력하고 있는지 나온다.
위의 사진에서 알 수 있듯이, 우리는 Desktop(바탕화면)의 '장고' 라는 폴더 내에서 터미널 명령어를 실행시켜주고 있음을 알 수 있다. ('장고' 폴더는 내가 처음에 바탕화면에 생성한 폴더의 이름이다)
그런데 manage.py라는 파일은 장고 폴더가 아닌 Desktop/장고/djangoproject 에 존재한다.
따라서, 해당 위치로 이동을 해줘야 manage.py를 실행했을 때 해당 파일을 찾아 실행할 수 있게된다.
작업위치를 이동하는 명령어는 change directory를 줄인 cd 로, cd 작업위치 를 터미널에 입력 후 엔터를 쳐주면 해당 위치로 이동할 수 있다.
우리는 djangoproject라는 폴더로 이동해야하므로 cd djangoproject를 쳐주면 되겠다.
참고로 cd 명령어는 바로 하위의 폴더로만 이동가능하다. 즉, 장고 -> djangoproject로는 이동이 가능하지만,
Desktop -> djangoproject로의 직접적인 이동은 불가능하다. 반드시 단계별로 거쳐 올라가야 한다.
또한, cd .. 를 입력하게 되면 현 위치에서 한 단계 상위 폴더로 이동한다.
이런식으로 말이다.
어쨌든, manage.py 파일이 존재하는 djangoproject 폴더로 와서 서버를 실행시켜보자.
앞서 얘기했듯, 해당폴더로 이동 후 python manage.py runserver 를 입력해주면 된다.
그러면 해당 내용이 터미널에 출력되는데,
밑에서 두 번째 줄의 Starting development server at http://127.0.0.1:8000/ 을 자세히 보자.
http://127.0.0.1은 우리의 로컬서버를 뜻하는 주소이다. 즉, 다른 사람이 아닌 나만 접속할 수 있는 내 컴퓨터의 서버를 의미한다.
뒤의 숫자 8000은 포트 번호를 의미하는데, 궁금하면 구글링해보기를 추천하고 그렇지 않다면 굳이 몰라도 괜찮다.
그냥, 아무도 쓰지 않는 빈 공간 정도로 생각해두고 넘어가자.
해당 주소를 Ctrl을 누른 상태에서 클릭하게 되면
Django 프레임워크가 잘 작동하고 있음을 알리는 귀여운 페이지가 나오게 된다.
앞으로 django를 이용해 페이지를 만들고, 페이지가 잘 돌아가는지 확인하기 위해서 manage.py runserver 명령어를 무척이나 많이 사용하게 될 것이니 손에 잘 익혀두도록 하자.
또한, 서버를 돌리고 있는 와중에는 터미널에 아무런 값도 입력할 수 없다.
따라서, 터미널에 다른 값을 입력하기 위해선 서버를 꺼줘야 하는데, 이 때는 Ctrl + C를 눌러 서버를 종료시킬 수 있다.
앱(app) 폴더 생성
프로젝트를 생성했으니 이제는 프로젝트에 들어갈 앱을 생성해보자.
앱을 생성하기 이전에, 두 가지가 정확히 어떤 관계를 갖고 있는지 알고 넘어가는 것이 중요하다.
우리가 흔히 어플리케이션이라고 하는 앱이라는 이름 때문에, 앱 폴더가 하나의 어플리케이션을 만들기 위한 폴더라고 오해하기 쉽다.
하지만 django에서 정의하는 앱이란 하나의 기능을 담당하는 요소이다.
카카오톡을 만든다고 생각해보자.
우리는 카카오톡이라는 거대한 프로그램 안에 채팅하기, 선물하기, 쇼핑하기 등의 여러 기능들을 만들 수 있다.
여기서 이 채팅하기, 선물하기, 쇼핑하기를 바로 django에서는 앱이라고 칭한다.(사실 다른 프레임워크에서도 마찬가지이다)
그리고, 우리가 맨 처음 생성한 프로젝트가 바로 카카오톡이라고 할 수 있다.
즉, 카카오톡 프로젝트 안에 채팅하기 앱, 선물하기 앱, 쇼핑하기 앱 등을 만드는 것이다.
따라서, django의 앱은 프로젝트 폴더 내에 만든다.
runserver 명령어를 입력했던 동일한 위치(djangoproject 폴더 내)에서
python manage.py startapp myapp 을 입력하여 app을 생성해줄 수 있다.
역시 myapp 자리에는 우리가 원하는 app이름을 적어주면 된다.
해당 명령어를 실행하고 나면 프로젝트 폴더 안에 myapp이라는 폴더가 생긴 것을 확인할 수 있다.
프로젝트와 앱을 연결시켜주기
앱을 생성했다면 마지막으로 중요한 작업이 남아있다.
django는 바보라서 우리가 만들어준 앱을 알아서 프로젝트와 연결해주지 못해 우리가 직접 연결해줘야한다.
myproject 폴더를 열어보면 settings.py 라는 파일이 있다. 해당 파일을 눌러 VS Code에 띄워보자.
알아듣지 못할 어려운 말들이 많이 적혀있다.
일단 다른 것들은 모두 무시한 뒤, 스크롤을 내려 'INSTALLED_APPS'를 찾아주자
33번째 줄에 가면 어렵지 않게 찾을 수 있다.
이 리스트는 해당 프로젝트에 연결시켜줄 앱들을 적어주는 곳이다. 이미 내장된 앱들이 몇 개 보인다.
우리는 이곳에 새로 추가한 앱의 이름을 적어주면 된다.
이런식으로 말이다.
이러면, 우리의 프로젝트와 앱이 서로 연결된 상태가 된다.
물론, 다양한 기능들을 만드느라 여러 개의 앱을 생성하게 되면 모두 이곳에 직접 이름을 추가해줘야한다.
* 그냥 앱 이름을 썼을 때 오류가 발생한다면 <app이름>.apps.<첫글자대문자app이름>Config 로 입력해보자
ex) 'myapp.apps.MyappConfig'
'프레임워크 > Django' 카테고리의 다른 글
[Django] Word Count 만들기 - 2 (0) | 2021.02.16 |
---|---|
[Django] Word Count 만들기 - 1 (0) | 2021.02.15 |
[Django] MTV 패턴 (0) | 2021.02.15 |
[Django] Hello World 페이지 만들기 (0) | 2021.02.15 |
[Django] Django란? - Django 설치 및 가상환경 설정 (0) | 2021.02.15 |