카테고리 없음

django 만들기

jdg30621 2026. 2. 13. 13:28

pyenv virtualenv 3.12.1 oz

Pyenv local oz

Poetry init

 

(Oz) ~/projects/lecture/oz/bookmark/ [main] charm .

Django-admin startproject mysite

Django-admin startproject mysite .

Django-admin startproject config .

Python manage.py rumserver

 

Poetry.lock

Pyproject.toml

 

Source 

 

windows pip3 install django

 

python manage.py migrate

- > 데이터베이스 기본설정이라고 생각하시면 됩니다.

 

python manage.py makemigrations

 

 

 

 

 

 

 

python manage.py migrate

 

 

 

 

 

 

 

 

ows pip3 install django

 

python manage.py migrate

- > 데이터베이스 기본설정이라고 생각하시면 됩니다.

 

python manage.py makemigrations

 

 

 

 

 

 

 

python manage.py migrate

 

 

 

 

 

 

 

= > 모델을 만들면 반드시 할 것,

 

——————

 

장고(Django)에서 **앱(App)**을 만들고 첫 화면을 띄우는 과정은 "우리 집(Project)에 어떤 기능이 있는 방(App)을 만들고, 손님(User)을 맞이할 준비를 하는 과정"과 같습니다.

가장 대중적인 "Hello World" 출력 과정을 통해 그 원리를 설명해 드릴게요.

 

1. 앱(App) 생성: 독립된 기능 단위

장고 프로젝트는 여러 개의 앱으로 구성됩니다. 예를 들어 쇼핑몰 프로젝트라면 '상품 관리 앱', '결제 앱', '게시판 앱' 등으로 나뉩니다.

  • 명령어: python manage.py startapp bookmark
  • 원리: 이 명령어를 치면 bookmark라는 폴더와 함께 models.py, views.py 등의 파일이 자동으로 생깁니다. 이제 이 폴더는 '북마크' 기능만을 담당하는 독립된 단위가 됩니다.

2. 앱 등록: "나 이제 이 앱 쓸 거야"

앱만 만든다고 끝이 아닙니다. 프로젝트 설정 파일에 이 앱의 존재를 알려야 합니다.

  • 파일: config/settings.py
  • 방법: INSTALLED_APPS 리스트에 생성한 앱 이름을 추가합니다.
    Python

    INSTALLED_APPS = [
  •     ...,
  •     'bookmark',
  • ]



 

3. 요청과 응답의 흐름 (MVT 구조)

사용자가 브라우저에 주소를 입력했을 때 화면이 나오기까지의 과정은 보통 URL -> View -> Template 순서로 흐릅니다.

① View 만들기: "무엇을 보여줄까?"

views.py는 사용자에게 보여줄 로직을 담는 곳입니다.

  • 파일: bookmark/views.py

Python

 

from django.http import HttpResponse

 

def index(request):

    return HttpResponse("Hello, Django! 북마크 페이지입니다.")

② URL 연결하기: "어떤 주소로 들어올까?"

사용자가 어느 주소로 들어왔을 때 위에서 만든 index 함수를 실행할지 정해야 합니다.

  • 파일: config/urls.py

Python

 

from django.contrib import admin

from django.urls import path

from bookmark.views import index  # 우리가 만든 view를 가져옵니다.

 

urlpatterns = [

    path('admin/', admin.site.urls),

    path('hello/', index),  # 127.0.0.1:8000/hello/ 로 접속하면 index 실행!

]

 

4. 서버 실행 및 확인

이제 모든 준비가 끝났습니다. 터미널에 명령어를 입력해 서버를 켭니다.

  • 명령어: python manage.py runserver
  • 확인: 브라우저 주소창에 http://127.0.0.1:8000/hello/를 입력합니다.

결과: 화면에 **"Hello, Django! 북마크 페이지입니다."**라는 문구가 뜨면 성공입니다!

 

💡 핵심 원리 요약

  1. Project vs App: 프로젝트는 전체 웹사이트, 앱은 그 안의 세부 기능입니다.
  2. 연결의 연속: 앱을 만들면 settings.py에 등록하고, views.py에 로직을 짜고, urls.py에 길을 내어주는 과정이 기본 루틴입니다.
  3. 관리자(manage.py): 앱을 만들 때도, 서버를 켤 때도 항상 이 리모컨을 사용합니다.

이제 단순한 텍스트가 아니라, 예쁜 HTML 페이지(Template)를 보여주는 방법을 알아볼까요? 아니면 데이터베이스에 데이터를 저장하는 모델(Model) 작업을 시작해볼까요?

——————

 

장고(Django) 프로젝트를 시작할 때 입력하는 명령어들은 단순히 "외우는 것"보다 "어떤 흐름으로 데이터가 움직이는지" 이해하는 것이 훨씬 중요합니다.

작성해주신 명령어들을 바탕으로, 장고 프로젝트의 핵심 원리를 3단계로 나누어 설명해 드릴게요.

 

1. 환경 설정: 나만의 독립된 방 만들기

pyenv, virtualenv, poetry를 사용하는 이유는 **"격리"**입니다.

  • 원리: 컴퓨터 전체에 장고를 설치하면 프로젝트마다 버전이 엉킬 수 있습니다. 그래서 프로젝트 전용 "가상 환경"이라는 독립된 방을 만들고, 그 안에 필요한 도구(Django 등)를 모아두는 것입니다.
  • Poetry의 역할: pyproject.toml은 요리 레시피와 같습니다. "이 프로젝트는 파이썬 3.12.1과 장고 5.0이 필요해"라고 기록해두면, 나중에 다른 컴퓨터에서도 똑같은 환경을 바로 복구할 수 있습니다.

 

2. 프로젝트 생성: 설계도와 관리자 배치

django-admin startproject config .

장고 프로젝트를 생성하면 여러 파일이 생기는데, 핵심 파일의 역할은 다음과 같습니다.

  • manage.py: 이 프로젝트의 **"리모컨"**입니다. 서버 실행, DB 관리 등 모든 명령은 이 파일을 통해 전달됩니다.
  • settings.py: 프로젝트의 **"설정값"**입니다. 어떤 DB를 쓸지, 어디에 사진을 저장할지 등을 결정합니다.
  • urls.py: 프로젝트의 **"이정표"**입니다. 사용자가 /login으로 들어오면 어디로 보낼지 길을 안내합니다.

Tip: 뒤에 마침표(.)를 찍는 이유는 현재 폴더를 기준으로 프로젝트를 생성하여, 폴더 구조가 불필요하게 깊어지는 것을 방지하기 위함입니다.

 

3. 마이그레이션: 파이썬과 DB의 통역사

가장 헷갈려 하시는 makemigrations와 migrate의 차이는 **"설계도"**와 **"실제 공사"**의 차이입니다.

명령어 단계 비유 설명
makemigrations 설계도 작성 "이런 집을 지을 거야"라고 종이에 그림을 그림 파이썬 코드로 작성한 모델(Model) 변경 사항을 추적하여 0001_initial.py 같은 설계도 파일 만듭니다.
migrate 실제 공사 종이에 그린 그림을 보고 실제로 땅을 파고 벽돌을 쌓음 설계도 파일을 읽어서 **실제 데이터베이스(DB)** 테이블을 생성하거나 수정합니다.

Sheets로 내보내기

  • 왜 두 번 나누어 하나요?

 

요약: 장고 프로젝트의 루틴

  1. 환경 준비: 가상 환경을 켜고 필요한 패키지를 설치합니다 (poetry install).
  2. 모델 작성: models.py에 내가 저장하고 싶은 데이터 구조를 파이썬 코드로 짭니다.
  3. 설계도 추출: python manage.py makemigrations를 통해 변경 내용을 기록합니다.
  4. DB 반영: python manage.py migrate를 통해 DB에 실제 칸을 만듭니다.
  5. 확인: python manage.py runserver로 서버를 띄워 확인합니다.

 

참고: 오타 교정

작성하신 내용 중에 몇 가지 오타가 있어 수정해 드립니다:

  • rumserver → runserver
  • ows pip3 install django → 윈도우 환경이라면 pip install django (단, Poetry를 사용 중이라면 poetry add django를 권장합니다.)

다음 단계로, 장고의 꽃이라고 불리는 "App(앱)"을 생성하고 첫 화면을 띄워보는 과정을 설명해 드릴까요?