[Django] 첫 번째 장고 앱 작성하기, part1

2022. 11. 14. 12:16· Django/DRF
목차
  1. [Django] 첫 번째 장고 앱 작성하기, part1
  2. 📖  개요
  3. 🎯 목표
  4. 💡 Django의 버전 확인
  5. 💡 프로젝트 만들기
  6. 💡 startproject 에서 만들어지는 파일들
  7. 💡 개발 서버
  8. 💡 설문조사 앱 만들기
  9. 💡 첫 번째 뷰 작성하기
  10. 💡 include()와 path()
반응형

[Django] 첫 번째 장고 앱 작성하기, part1

링크 : https://docs.djangoproject.com/ko/4.1/intro/tutorial01/

 

첫 번째 장고 앱 작성하기, part 1 | Django 문서 | Django

Django The web framework for perfectionists with deadlines. Toggle theme (current theme: auto) Toggle theme (current theme: light) Toggle theme (current theme: dark) Toggle Light / Dark / Auto color theme Overview Download Documentation News Community Code

docs.djangoproject.com


📖  개요

이 글은 장고 공식 문서를 보고 실습한 내용을 다시 한번 기억하기 위해 쓰면서 정리한 내용입니다. 

 

🎯 목표

튜토리얼을 통해 간단한 설문조사(polls) 애플리케이션을 만드는 과정이다.

두 가지 파트로 구분되어 있다.

  • 사람들이 설문 내용을 보고 직접 투표할 수 있는 개방된 사이트
  • 관리자가 설문을 추가, 변경, 삭제할 수 있는 관리용 사이트

💡 Django의 버전 확인

py -m django --version

Django가 제대로 설치되었다면 버전을 확인하고 제대로 설치되지 않았다면, "No module named django"와 같은 에러가 발생한다.

이 글은 Django 4.1을 위해 작성된 것으로 python 3.8혹은 이후 버전을 지원한다.

 

💡 프로젝트 만들기

커맨드 라인에서 cd명령으로 코드를 저장할 디렉토리로 이동한 후, 아래 명령어를 수행한다.

django-admin startproject mysite

그럼 현재 디렉토리에 mysite라는 디렉터리를 생성할 것이다.

 

❗ 주의사항

더보기
  • 프로젝트를 생성할때, Python 또는 Django에서 사용중인 이름은 피햐아한다. 특히 Python이나 django와 test와 같은 이름은 피해야한다. (test는 Python 패키지의 이름중 하나)
  • 작성한 코드를 /home/mycode와 같은 DocumentRoot의 바깥에두는 것이 보안상 좋다.

 

💡 startproject 에서 만들어지는 파일들

더보기
  • file:mysite/ 
    • 디렉토리 밖은 프로젝트를 담는 공간입니다. 그 이름은 Django와 아무 상관이 없으니, 원하는 이름으로 변경해도 됩니다.
  • manage.py 
    • Django 프로젝트오 다양한 방법으로 상호작용 하는 커맨드 라인의 유틸리티입니다. 
    • 자세한 정보
  • mysite/
    • 디렉토리 내부에는 프로젝트를 위한 실제 Python 패키지들이 저장됩니다. 이 디렉토리 내의 이름을 이용하여 프로젝트의 어디에서나 Python패키지들을 임포트 할수 있습니다. (예 : mysite.urls)
  • mysite/__init__.py 
    • Python으로 하여금 이 디렉토리를 패키지처럼 다루라고 알려주는 용도의 단순한 빈 파일입니다.
    • 자세한 정보 
  • mysite/settings.py
    • 현재 django 프로젝트의 환경 및 구성을 저장합니다.
    • 자세한 정보
  • mysite/urls.py
    • 현재 Django project의 URL의 선언을 저장합니다. Django로 작성된 사이트의 "목차"라고 할 수 있습니다.
    • 동작 확인
  • mysite/asgi.py
    • 현재 프로젝트를 서비스하기 위한 ASGI-호환 웹 서버의 진입점입니다.
    • 배포하는 방법
  • mysite/wsgi.py
    • 현재 프로젝트를 서비스 하기 위한 WSGI호환 웹 서버의 진입점입니다.
    • 배포하는 방법

 

💡 개발 서버

Django 프로젝트가 제대로 동작하는지 확인해보자. mysite디렉터리로 이동하고, 아래 명령어를 입력하세요.

py manage.py runserver

이제 서버가 실행중이니 웹 브라우저의 http://127.0.0.1:8000/ 를 통해서 접속할 수 있습니다.

 

💡 설문조사 앱 만들기

작업을 시작하기 위해 환경이 만들어졌으니 앱을 생성해봅시다.

앱 생성을 위해 manage.py가 존재하는 디렉터리에서 다음의 명령을 입력해 봅시다.

py manage.py startapp polls

 

💡 첫 번째 뷰 작성하기

polls/view.py를 열어 다음과 같은 파이썬 코드를 입력합니다.

from django.http import HttpResponse

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

Django에서 가장 간단한 형태의 뷰 입니다. 뷰를 호출하려면 이와 연결된 URL이 있어야 하는데 이를 위해서 URLconf가 사용됩니다. polls디렉터리에서 URLconf를 생성하려면, urls.py라는 파일을 생성해야합니다.

 

polls/urls.py 파일에는 다음과 같은 코드가 포함되어 있습니다.

from django.urls import path

from . import views

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

다음 단계에서 최상위 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()와 path()

include( ) 함수는 다른 URlconf들을 참조할 수 있도록 도와줍니다. django가 함수 include( )를 만나게 되면, URL의 그 시점까지 일치하는 부분을 잘라내고, 남은 문자열 부분을 후속 처리를 위해 include 된 URLconf로 전달합니다.

include( ) 덕분에 그 어떤 다른 root 경로에 연결하더라도 URLconf가 존재한다면 앱은 잘 작동될 것입니다.

 

path( ) 함수에는 필수 인수인 route와 view, 2개의 선택 가능한 인수로 kwargs와 name까지 모두 4개의 인수가 있습니다.

  • route
    • URL 패턴을 가진 문자열입니다. 요청이 처리될 때, Django는 urlpatterns의 첫 번째 패턴부터 시작하여 일치하는 패턴을 찾을 때까지 요청된 URL을 각 패턴과 리스트의 순서대로 비교합니다.
  • view
    • Django에서 일치하는 패턴을 찾으면 HttpRequest 객체를 첫 번째 인수로 하고, 경로로 부터 '캡처된' 값을 키워드 인수로 하여 특정한 view 함수를 호출합니다.
  • kwargs
    • 임의의 키워드 인수들은 목표한 view에 사전형으로 전달됩니다. 
  • name
    • URL에 이름을 지으면, 탬플릿을 포함한 Django 어디에서나 명확하게 참조할 수 있습니다. 이 강력한 기능을 이용하여, 단 하나의 파일만 수정해도 project내의 모든 URL 패턴을 바꿀 수 있도록 도와줍니다.
반응형

'Django > DRF' 카테고리의 다른 글

[Django] 프로젝트 구조 설정, 만드는 순서  (0) 2022.11.22
[Django] static 파일 이미지 HTML에 추가하기  (0) 2022.11.20
[Django] 첫 번째 장고 앱 작성하기, part4  (0) 2022.11.17
[Django] 첫 번째 장고 앱 작성하기, part3  (0) 2022.11.15
[Django] 첫 번째 장고 앱 작성하기, part2  (0) 2022.11.14
  1. [Django] 첫 번째 장고 앱 작성하기, part1
  2. 📖  개요
  3. 🎯 목표
  4. 💡 Django의 버전 확인
  5. 💡 프로젝트 만들기
  6. 💡 startproject 에서 만들어지는 파일들
  7. 💡 개발 서버
  8. 💡 설문조사 앱 만들기
  9. 💡 첫 번째 뷰 작성하기
  10. 💡 include()와 path()
'Django/DRF' 카테고리의 다른 글
  • [Django] static 파일 이미지 HTML에 추가하기
  • [Django] 첫 번째 장고 앱 작성하기, part4
  • [Django] 첫 번째 장고 앱 작성하기, part3
  • [Django] 첫 번째 장고 앱 작성하기, part2
Jong_seoung
Jong_seoung
기록하자, 머리는 생각하는 곳이지 저장장치가 아니다.
반응형
Jong_seoung
Today_developStory
Jong_seoung
전체
오늘
어제

블로그 메뉴

  • Home
  • Git Hub
  • 분류 전체보기 (351)
    • Theory (16)
    • Java (3)
      • 알고리즘 (2)
      • 문법 (0)
    • Spring (7)
      • 스프링 입문 (6)
      • PickTalk (0)
      • 에러처리 (1)
    • Python (80)
      • 알고리즘 - 이론 (17)
      • 알고리즘 - 내장함수, 라이브러리 등등 (3)
      • 알고리즘 - 백준 (53)
      • 나도코딩 정리 (2)
      • 기타 (5)
    • Django (159)
      • DRF (105)
      • 인프라 (46)
      • DataBases (2)
      • API Docs (6)
    • FrontEnd (22)
      • htmx (2)
      • React (8)
      • 자바스크립트 (12)
    • GIT (16)
    • 기타 (8)
      • 정리 (2)
      • Flutter (1)
      • 마이크로프로세서 - ATmega128 (2)
      • 개발환경 세팅 (3)
    • 자격증 (37)
      • 정보처리기사 (19)
      • SQLD자격증 (18)

인기 글

최근 글

태그

  • alarm
  • BFS
  • CSRF
  • Django
  • django channels
  • django sse
  • django tutorial
  • django 배포
  • django 스웨거 적용
  • Django 이미지 저장

최근 댓글

hELLO · Designed By 정상우.v4.3.0
Jong_seoung
[Django] 첫 번째 장고 앱 작성하기, part1
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.