Python Django로 웹 페이지 개발하기 (3) Django Tutorial 투표 앱 만들기 1

개현·2022년 6월 29일
0

전 포스팅에서 파이썬 설치와 virtualenv를 사용한 가상환경 준비를 하고 django를 설치해봤다. 이번에는 django에 대해 알아보고 django 공식 문서에 따라 투표 앱 개발 튜토리얼을 진행할 것이다.

Django 공식 문서 https://docs.djangoproject.com/en/4.1/intro/tutorial01/

먼저 저번에 만든 가상환경을 구동시키자. 만약 없다면 저번 포스팅 개발 환경 준비를 보고 오기 바란다.

프로젝트 생성

구동시켰다면 먼저 디장고가 설치되어있는지 아래 코드를 쉘에 입력해 확인해보도록 한다.

python -m django --version

실행하면 django의 버전이 출력되어야 한다. 만약 그러지 않고 No module named django 라는 문구가 출력된다면 django가 설치되어있지 않거나 가상환경이 구동되어 있지 않은 상태이다. 쉘 왼쪽에 (가상환경명)이 나오는지 확인하고 없다면 구동시켜줘야한다.

자.... 제대로 버전이 나온다면 정상적으로 설치된 상태이니 프로젝트를 생성해보도록하자. 명령어 쉘에서 프로젝트 생성을 원하는 폴더로 들어가 아래 명령어를 입력하면 프로젝트가 생성된다.

django-admin startproject <프로젝트명>

입력하고 잠시만 기다리면 프로젝트가 생성된다.

생성되면 이러한 구조의 프로젝트가 생성된다. 여기서 최상위 폴더는 우리가 지어준 프로젝트명으로 되어있다 참고로 위 사진의 프로젝트명은 내부 프로젝트 명으로 root 폴더가 아니다 저기보다 한단계 위가 root 폴더이다.

각 역할은 다음과 같다.

  • root 폴더 : 프로젝트 컨테이너 (이름 변경 가능)
  • manage.py : Django와 상호 작용 할 수 있게 해주는 명령어 유틸리티
  • 내부 <프로젝트폴더> : 프로젝트에 있는 것을 가져올 수 있게하는 패키지 이름
  • <프로젝트>/__init__.py : 해당 경로가 python 패키지로 간주함을 알리는 빈 파일
  • <프로젝트>/settings.py : 프로젝트의 설정 및 구성파일
  • <프로젝트>/urls.py : 프로젝트에 대한 URL 선언 파일
  • <프로젝트>/asgi.py : 프로젝트 제공을 위한 ASGI 호환 웹 서버 진입점
  • <프로젝트>/wsgi.py : 프로젝트를 제공하기 위한 WSGI 호환 웹 서버 진입점

자 여기까지 프로젝트를 생성해 보았다. 이제 프로젝트를 테스트 해보기 위한 테스트 개발 서버를 시작해보도록 하자. 명령어 쉘에서 manage.py가 있는 폴더와 같은 위치에서 아래 코드를 입력하면 서버가 실행된다.

python manage.py runserver

※참고로 개발 서버를 프로덕션 서버 즉 상용중인 서버에서 사용하면 안된다!

명령어를 실행하면 여러가지 문구가 뜰텐데

아래쪽에 출력된 서버 주소 - http://127.0.0.1:8000/ 로 접속하면 된다.
접속하면 아래와 같은 페이지가 나오게 된다.

위처럼 나왔으면 정상적으로 서버가 실행된 것이다! 서버를 종료하는 방법은 명령어 쉘에 Ctrl + C를 입력하면 서버가 종료된다.

바로 다음에는 앱을 생성해볼건데 프로젝트 개발을 위해 본인은 VSCode를 사용중이다. 각자 원하는 에디터를 사용해 개발하면 된다. 아! 참고로 VSCode 자동완성이 안된다면 하단의 파이썬 버전을 가상 환경의 파이썬을 선택해주면 된다.

App 생성하기

Django에서 App이란 특정한 기능 ex) 블로그, 설문조사, 메모장 등과 같이 특정 기능을 말하며, Project는 위의 App과 설정들을 한데 모아놓은 것을 말한다.

이번에 만들 앱은 투표 앱을 만들어볼것이다. 앱을 만들기 위해선 manage.py가 있는 폴더에서 아래 명령어를 입력하면 된다.

py manage.py startapp <앱이름>

이번엔 공식 문서의 튜토리얼과 같이 앱 이름을 polls라고 지어주도록 하자. polls 앱을 생성하면 프로젝트 경로에 아래 폴더와 파일이 생성된다.

정상적으로 생성 되었다면 view를 작성해보도록 하자. 생성된 앱 폴더 내에 view.py에서 수정하면 된다. 여기서 view란 웹 동작을 위해 우리가 로직을 작성할 파일이다.

파일에 들어가서 아래 코드를 입력해보도록 하자

from django.shortcuts import render
from django.http import HttpResponse

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

그리고 view를 호출하기 위해선 URL을 매핑해야한다. 그래서 urls.py 파일을 작성해야하는데 우리가 만든 앱 폴더 내부엔 urls.py가 없다 그러니 직접 파일을 생성해서 추가해주도록 하자.

만들었다면 아래 코드를 입력하면 된다.

from django.urls import path

from . import views

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

위 코드는 앱의 url을 지정해주는것이다.

이제 <프로젝트명>폴더 안에 있는 urls.py을 수정해주어야 한다.
해당 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를 참조할 수 있다.

자 여기까지 되었다면 서버를 실행시켜보도록하자! 실행시켜서 접속하면 아래와 같은 페이지가 보이게 될텐데

그 이유는 http://127.0.0.1:8000/ 로 접속했기 때문이다. 방금 우리가 만든 polls를 확인하기 위해선 끝에 polls를 붙여줘야 한다. 아까 url을 설정했던 그 path다

http://127.0.0.1:8000/polls 로 접속하면 아래와 같이 우리가 입력한 문구가 정상적으로 보여지게 될것이다.

여기까지 앱을 만들고 url 설정 및 실행을 해보았다.

다음번엔 Django 앱 2부를 포스팅하겠다.

profile
세계 최강의 개발자가 되기까지 도전!

0개의 댓글