[Python | Django] 장고 개발 흐름 정리하기 - 1

2025. 1. 20. 17:24·Programming/Python

지금까지 파이썬을 설치하는 것부터 장고의 URL과 View에 대해서 실습을 하고 공부를 해보았다. 이러한 과정이 나중 프로젝트에서 그대로 반복될 것 같다. 지금 한 것까지의 과정을 그림으로 살펴보면 아래와 같다. 

1 : 브라우저에서 로컬 서버로 위와 같은 페이지를 요청을 했다.

2 : urls.py 파일에서 /pybo URL 매핑을 확인하고 Views.py 파일의 index 함수를 호출 했다.

3 : 호출한 결과를 브라우저에 반영했다.


다음으로 넘어가기 전, config/urls.py 파일을 정리할 필요가 있다. pybo 앱과 관련된 내용은 pybo 디렉터리 아래에 위치해야 한다. 하지만 지금 구조에서는 pybo 앱 URL 매핑을 추가할 때마다 config/urls.py 파일을 수정해줘야 한다. config/urls.py는 프로젝트 전반의 URL을 관리하는 파일이기 때문에 앱별 URL 매핑은 여기에 포함되지 않는 것이 좋다고 한다. 그래서 pybo 앱 전용 URL 매핑을 config/urls.py에 계속 추가하지 않는 것이 좋다. 

URL 분리

1. config/urls.py 파일 수정

from django.contrib import admin
from django.urls import path, include
from pybo import views  # 이거는 삭제 해주기

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

 

pybo/ URL에 대한 매핑을 path('pybo/', views.index)에서 path('pybo/', include('pybo.urls'))로 수정을 해줬다. path('pybo/', include('pybo.urls'))은 pybo/로 시작하는 페이지를 요청하면 pybo/urls.py 파일의 매핑 정보를 읽어서 처리하라는 의미이다. 이제 pybo/question.creat, pybo/anser/create등의 pybo/로 시작하는 URL을 추가해야 할 때 config/urls.py 파일을 수정할 필요 없이 pybo/urls.py 파일만 수정해주면 된다. 

 

쉽게 말해서 페이지 이동을 해주기 위해서 URL을 분리 해주는 것이다. URL 분리를 해서 프로젝트 구조를 정리해주고, 각 앱이 독립적으로 동작할 수 있도록 유지 보수성을 높일 수 있다.


2.  pybo/urls.py 파일 생성해주기 (pybo 디렉터리에 urls.py 파일 생성 해주기)

 

파일이름 : projects/mysite/pybo/urls.py

from django.urls import path

from . import views

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

기존 config/urls.py 파일에 설정했던 내용과 차이가 없다.  path('', views.index) 처럼 pybo/가 생략된 ''가 사용되었다. 이렇게 되는 이유는 config/urls.py 파일에서 이미 pybo/로 시작하는 URL이 pybo/urls.py 파일과 먼저 매핑되었기 때문이다. 

 

pybo/ URL은 다음처럼 config/urls.py 파일에 매핑된 pybo/ 와 pybo/urls.py 파일에 매핑된 ''이 더해져 pybo/가 된다.

config/urls.py   pybo/urls.py 최종 URL
'pybo/' + '' 'pybo/'
'pybo/' + 'question/creat/' 'pubo/question/create/'

위 두번째 예시처럼 pybo/urls.py 파일에 path('question/create/'...)가 URL 매핑이 추가된다면 매핑되는 최종 URL pybo/가 더해진 pybo/question/create가 된다. 

 

 

저작자표시 비영리 변경금지 (새창열림)

'Programming > Python' 카테고리의 다른 글

[Python | Django] URL 과 뷰  (0) 2025.01.19
[Python | Django] 장고 프로젝트 생성하기  (0) 2025.01.15
[Python / Django] 파이썬 가상 환경 구성  (0) 2025.01.15
[Python] Python 기반 웹 페이지 mariaDB로 생성한 데이터베이스 연동  (0) 2025.01.15
[Python] 람다 함수  (0) 2024.12.29
'Programming/Python' 카테고리의 다른 글
  • [Python | Django] URL 과 뷰
  • [Python | Django] 장고 프로젝트 생성하기
  • [Python / Django] 파이썬 가상 환경 구성
  • [Python] Python 기반 웹 페이지 mariaDB로 생성한 데이터베이스 연동
Kouji
Kouji
Journey to Becoming a Data & Server Engineer
  • Kouji
    Kouji's Data & Server Journey
    Kouji
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Programming
        • Python
        • SQL
      • Data & AI
        • Data Analysis
        • Ai
      • Cloud(AWS)
      • OS
        • Linux
        • Docker
        • Jenkins
        • Ubuntu
        • Window
        • Kubernates
        • Ansible
      • Network
        • NVIDIA
        • Network[이론]
        • Network[GNS3, Packet]
        • Network[On-Premise]
        • Network [L2, L3]
      • 트러블 슈팅
      • Life
        • My Career Stories
        • Personal
      • 개발 + OS 지식 함양
  • 블로그 메뉴

    • 홈
    • 관리 페이지
    • 글쓰기
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    네트워크관리사
    리눅스
    티스토리챌린지
    화이팅
    인프라엔지니어
    클라우드엔지니어
    네트워크엔지니어
    ubuntu
    라우팅
    웹
    docker
    오블완
    CISCO
    Linux
    L3
    시스템엔지니어
    네트워크
    IT
    네트워크엔지니어링
    서버엔지니어
    스위치
    보안
    서버
    dns
    AWS
    도커
    알고리즘
    VMware
    OS
    인프라
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Kouji
[Python | Django] 장고 개발 흐름 정리하기 - 1
상단으로

티스토리툴바