TIL | Django - 프로젝트 시작하기

송치헌·2021년 8월 10일
0

TIL | Wecode - Django

목록 보기
1/18
post-thumbnail

무엇을 배웠는가

이 프로젝트는 장고 공식 홈페이지에 올라온 첫 번째 장고 앱 작성하기, part1 을 보고 작성한다.

Django 설치하기

깔파탄백 시리즈에서 올린 miniconda3를 설치한 상태라고 가정하고 시작한다.

https://velog.io/@hrpp1300/TIL-%EB%B0%B1%EC%97%94%EB%93%9C-%EA%B8%B0%EB%B3%B8-%EA%B0%88%EA%B3%A0-%EB%8B%A6%EC%9E%90-1
여기서 설치방법을 볼 수 있다.

터미널에서 다음과 같이 작성한다.

conda create -n <가상환경 이름> python=<python 버전>

본인은 이렇게 작성했다.

conda create -n django-orange python=3.9

잘 만들어졌는지 확인하기 위해 가상환경 리스트를 출력해보자.

conda env list

가상환경이 활성화되기 전에는 원래 이렇게 사용자명 옆에 (base)라고 적혀있다.

가상환경을 만들었으니 활성화를 해보자.

conda activate django-orange

다음과 같이 바뀌어 있을 것이다.

(굿)

이제 활성화된 가상환경에서 Django를 설치하여 프로젝트를 만들어야 한다. 가상환경 밖에서 장고를 설치하여 사용할 경우 가상환경을 활성화 시켰을 때 장고가 설치되어 있는 것을 모른다.

방에서 공부하는 도중 너무 어두워서 불을 키려고 거실로 나가 불을 켜고 '음 이제 좀 환하군' 하고서 방으로 들어와서 방문닫고 공부하는 꼴이나 다름없는 셈이다. 방이 어두우면 방의 불을 켜야 하듯, 가상환경에서 장고를 이용하기 위해서는 가상환경 안에서 장고를 설치해야 한다. 아무튼 가상환경이 켜진 상태에서 장고를 설치한다. 대부분의 경우가 가상환경을 켜놓은 상태로 진행되니 아래는 전부 가상환경을 켜놓은 것으로 가정한다.

python -m pip install Django

그 다음은 django프로젝트를 만들어야 한다. 원하는 디렉터리로 들어간 후 프로젝트를 만들면 된다. 나의 경우는 wecode-DjangoPrj01 이라는 디렉터리를 만들어서 그 디렉터리로 이동한 후 프로젝트를 만들어 주었다.

mkdir wecode-DjangoPrj01
cd wecode-DjangoPrj01
django-admin startproject mysite

나는 mysite라는 프로젝트명으로 생성했다. mysite이 부분은 원하는 이름으로 해도 상관없다.

이제 만든 프로젝트로 이동해서 어떤 파일이 있는지 확인해보자.

cd mysite
ls

manage.py 라는 파일이 자동으로 생성되었다. 이 파일은 사이트 관리를 도와주는 스크립트 파일이다.

확인했으면 이제 여기서 다음 명령어를 실행하여 보자.

python manage.py runserver

다음과 같이 진행될 것이다. 빨간색으로 뜨는 부분은 일단은 무시해도 된다.
마지막에서 두번째 줄에서 Starting development server at http://127.0.0.1:8000/ 라고 적혀있다. 127.0.0.1 이라는 IP처럼 생긴 숫자는 자기 자신에게 접근하는 고정 IP주소이다. 인터넷상에서는 쓸 수 없다. 아무튼 저기 적혀있는 URL로 접속해보자.

이렇게 귀엽게 생긴 로봇이 출발하고 있고 우리한테 축하를 보내고 있다. 성공한 것이 맞다.


설문조사 앱 만들기

앱을 생성하기 위해서는 manage.py가 존재하는 디렉터리에서 앱을 생성해야 한다. 다음과 같은 명령어를 작성하자.

python manage.py startapp polls

polls는 투표소라는 뜻이다. 이 명령어를 작성하면 polls라는 디렉터리가 생성 될 것이다. 그럼 다음과 같은 디렉터리 구조가 될 것이다.

polls/
    __init__.py
    admin.py
    apps.py
    migrations/
        __init__.py
    models.py
    tests.py
    views.py

첫번째 view 작성

polls 디렉터리에 자동으로 views.py파일이 생성되어 있는 것이 보이는데 그 파일에 코드를 작성해 보자. vscode나 vim 등 에디터를 직접 이용해도 되고 터미널에서 vim 또는 code 명령어를 이용해서 파일을 수정해도 된다. 본인의 경우 vim으로 vim views.py를 터미널에 입력하여 수정하였다.

#polls/views.py

from django.http import HttpResponse

def index(request):
    return HttpResponse("Hello, world. You're at the polls index.")

처음에 임포트가 하나 되어있을텐데 지우지 말고 그 아래다가 추가하여 작성하면 된다.

views.py의 역할은 요청을 받으면 그 요청된 값을 보여주는 역할을 하는 것으로 보인다.

그런데 view를 호출하기 위해서는 view와 연결된 URL이 존재해야 한다. 이를 위해 URLconf가 사용된다. URLconf를 사용하기 위해서는 polls디렉터리에 urls.py라는 파일을 생성해야 한다. 직접 디렉터리에 들어가서 생성하던가 touch명령어를 사용하여 터미널에서 사용해도 된다.

성공적으로 만들었다면 다음과 같은 디렉터리 구조가 나와야 한다.

polls/
    __init__.py
    admin.py
    apps.py
    migrations/
        __init__.py
    models.py
    tests.py
    urls.py
    views.py

polls/urls.py에는 다음과 같은 코드를 작성한다.

#polls/urls.py
from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name='index'),
]

다음은 최상위 URLconf에서 polls.urls 모듈을 바라보게 해야한다. mysite/urls.py를 열고 다음과 같이 작성한다.

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('polls/', include('polls.urls')),
    path('admin/', admin.site.urls),
]

include()함수는 다른 URLconf를 참조할 수 있도록 해준다.

Django가 함수 include()를 만나게 되면, URL의 그 시점까지 일치하는 부분을 잘라내고, 남은 문자열 부분을 후속 처리를 위해 include 된 URLconf로 전달합니다.

해당 튜토리얼 사이트에서 다음과 같이 나와있는데 무슨 얘기인지는 모르겠다... 더 찾아봐야겠다.

이제 다시 manage.py파일이 있는 디렉터리로 이동해서 서버를 다시 열어보자.

python manage.py runserver

이제 http://localhost:8000/polls/ 로 가면 views.py에서 정의했던 문구가 보일 것이다.

part 1 끝


어디에 적용했는가

장고를 설치하고 간단한 ping pong API를 만들었다. 서버가 정상 작동하는지 확인하는 API라고 볼 수 있다.

어려웠던 점은 무엇인가

튜토리얼을 따라서 했지만 디렉터리를 헷갈리거나 오타가 나서 처음에 좀 해메었다. 그러나 차근차근 따라하다 보니 정상적으로 작동해서 기분은 좋았다.

profile
https://oraange.tistory.com/ 여기에도 많이 놀러와 주세요

0개의 댓글