본문 바로가기
Django

첫 번째 Django 앱 만들기 (Part 1: Requests and response)

by AlbertIm 2024. 8. 8.

시작

이번 포스트에서는 간단한 설문조사(Polls) 앱을 만드는 과정을 통해 Django의 requests와 response를 알아보려고 합니다.이 과정은 Django 튜토리얼의 가이드를 기반으로 하여 정리할 예정입니다. 본 포스트에서는 macOS와 IntelliJ IDEA Ultimate을 사용합니다. 

본문

프로제트 만들기

IntelliJ IDEA에서 Python Plugin 및 Django를 Plugin에 설치하면 Django 프로젝트를 바로 만들 수 있습니다.

 

프로젝트 생성화면

프로젝트 이름은 하나의 Django 앱 이름을 차지합니다. 주의하시기 바랍니다.
python의 주소는 아래를 명령어를 사용해서 확인할수 있습니다.

 

which python3

 

 

프로젝트 기본 구조

프로젝트가 잘 설치되였는지 확인

다음 명령어를 사용하여 서버가 잘 작동하는지 확인합니다.

  • 명령어: python manage.py runserver
  • 가상 환경이 잘 활성화되였는지도 확인합니다.

혹은 오른쪽 상단의 실행 버튼을 클릭하거나 단축키를 사용하여 Django 서버를 손쉽게 실행할 수 있습니다.

django-adminmanage.py

  • django-admin: Django의 관리 작업을 위한 명령줄 유틸리티입니다.
  • manage.py: django-admin과 유사한 작업을 수행하지만 프로젝트의 설정 파일인 settings.py를 기반으로 동작합니다. manage.pyDJANGO_SETTINGS_MODULE 환경 변수를 자동으로 설정하여 프로젝트에 맞는 설정을 적용합니다. 일반적으로 프로젝트 내에서 manage.py를 사용하여 명령어를 실행하는 것이 권장됩니다.

설문조사 앱 만들기

앱 생성 명령어입니다. 이 명령어는 실행하면 pools라는 이름의 새로운 Django 앱이 생성됩니다.

 

python manage.py startapp polls

 

polls 앱의 기본 구조입니다.

첫 번째 뷰 작성하기

views.py파일에 첫 번째 뷰를 작성합니다.

  • 뷰는 요청을 받고 응답을 반환하는 함수의 모음입니다.
  • 여기서 request는 클라이언트로부터 받은 요청이고 HttpResponse는 클라이언트에 보내는 응답을 나타냅니다.
# polls/views.py
from django.http import HttpResponse  


def index(request): 
    return HttpResponse("이것은 투표 앱의 첫 페이지입니다.") 

 

다음으로 polls패키지 내에 urls.py파일을 생성하고 아래 코드를 입력합니다.

  • urls.py 파일은 URL 매핑 정보를 설정하는 파일입니다. 이를 통해 특정 URL 패턴을 뷰 함수와 연결할 수 있습니다.
  • 여기서 빈 문자열 ""은 기본 URL 패턴을 의미하며 이를 views.index 함수와 매핑합니다.
  • path() 함수에는 2개의 필수 인수인 routeview, 2개의 선택 가능한 인수로 kwargs와 name까지 모두 4개의 인수가 전달될 수 있습니다.
    • route: URL 패턴을 가진 문자열입니다.
    • view: HttpRequest 객체를 첫 번째 인수로 사용하 route에서 "캡처된" 값을 키워드 인수로 사용하여 지정한 뷰 함수를 지정합니다. 예를 들어 rooutpools/<int:id>/이고 view가 views.pool_detail 이라면 URL 패턴에서 id라는 값이 캡처되어 views.poll_detail(request, id) 함수를 찾습니다.
    • kwargs: 임의의 키워드 인수를 전달할 수 있습니다. 일반적으로 사용하지 않습니다.
    • name: URL에 이름을 지정하여 Django의 다른 곳 특히 템플릿 내에서 이 이름으로 참조할 수 있습니다.
# polls/urls.py
from django.urls import path

from . import views

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

 

마지막으로 mysite/urls.py를 열어 아래와 같이 수정합니다.

  • 프로젝트의 urls.py은 루트 URL 매핑 정보를 설정합니다. 이 파일에서 include를 사용하여 polls.urls를 포함시킵니다. 이를 통해 polls앱의 URL 패턴을 프로젝트의 URL 설정에 통합할 수 있습니다.
  • polls.urls의 URL 매핑은 polls/ 로 시작하게 됩니다. 즉 polls/URL 경로를 포함한 요청은 polls.urls에서 정의한 URL패턴에 의해 처리됩니다.
# 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),
]

 

모든 설정을 마친 후 개발 서버를 다시 실행합니다.

python manage.py runserver

http://127.0.0.1:8000/polls/ 에 접속하면 아래와 같은 메시지를 확인할 수 있습니다.

마무리

Part 1를 따라 하면서 앱을 생성하는 방법과 viewsurls의 역할 및 사용 방법에 대해 정리했습니다. Spring은 주로 annotation을 사용하여 URL 매핑을 설정하고 Django는 path함수를 사용하여 URL 매핑을 설정합니다. 이러한 차이점이 있지만 웹 개발의 기본 원칙과 흐름은 큰 틀에서 유사한 점이 많은 것 같습니다.

 

참고자료

https://docs.djangoproject.com/ko/5.0/intro/tutorial01/

댓글