0Pricing
Python Academy · 강의

뷰와 URL

요청을 뷰로 라우팅하기

뷰와 URL은(는) CoddyKit의 무료 Python Academy 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Python Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Python Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

뷰란 무엇인가요

Django의 뷰는 웹 요청을 받아 웹 응답을 반환하는 함수 또는 클래스입니다. 뷰에는 페이지 로직이 들어 있으며 앱의 views.py에 작성합니다.

from django.http import HttpResponse

def home(request):
    return HttpResponse('Hello, world!')
print('A view takes request, returns response')

request 인수

모든 뷰는 들어오는 요청의 세부 정보가 담긴 request 객체를 받습니다. 여기에는 메서드, GET/POST 데이터, 사용자 등의 정보가 포함됩니다.

from django.http import HttpResponse

def info(request):
    return HttpResponse('Method: ' + request.method)
print('request carries the incoming data')

URL 패턴

앱의 urls.py는 urlpatterns라는 목록과 path() 함수를 사용하여 URL 경로를 뷰에 매핑합니다.

# blog/urls.py
from django.urls import path
from . import views

urlpatterns = [
    path('', views.home),
]
print('path maps a URL to a view')

URL 이름 지정

패턴에 name을 지정하면 경로를 코드에 직접 작성하지 않고 다른 곳에서 참조할 수 있습니다.

from django.urls import path
from . import views

urlpatterns = [
    path('', views.home, name='home'),
]
print("name='home' lets you reference it later")

URL 매개변수

<int:post_id> 같은 변환기를 사용하여 URL의 일부를 추출할 수 있습니다. 추출된 값은 뷰에 전달됩니다.

from django.urls import path
from . import views

urlpatterns = [
    path('post/<int:post_id>/', views.detail, name='detail'),
]
print('post/5/ -> detail(request, post_id=5)')

매개변수 읽기

추출된 값은 변환기의 이름과 일치하는 키워드 인수로 전달됩니다.

from django.http import HttpResponse

def detail(request, post_id):
    return HttpResponse('Post ' + str(post_id))
print('View receives post_id')

앱 URL 포함하기

프로젝트의 루트 urls.py는 include()를 사용하여 각 앱의 URL 설정을 가져오므로, URL 처리를 모듈식으로 유지할 수 있습니다.

# mysite/urls.py
from django.urls import path, include

urlpatterns = [
    path('blog/', include('blog.urls')),
]
print('include() wires up app urls')

템플릿 렌더링

render() 단축 함수는 템플릿과 컨텍스트 딕셔너리를 결합하고 HttpResponse를 반환합니다.

from django.shortcuts import render

def home(request):
    return render(request, 'home.html', {'name': 'Alice'})
print('render combines template + context')

404 도우미

get_object_or_404()는 객체를 가져오거나 객체가 없으면 404 오류를 발생시킵니다. 이는 흔히 사용하는 안전한 패턴입니다.

from django.shortcuts import get_object_or_404, render
from .models import Post

def detail(request, post_id):
    post = get_object_or_404(Post, id=post_id)
    return render(request, 'detail.html', {'post': post})
print('get_object_or_404 handles missing data')

URL 역변환

Python에서는 reverse('detail', args=[5])를 사용하여 패턴 이름으로 URL을 생성합니다. 템플릿에서는 {% url %} 태그가 같은 작업을 수행합니다.

from django.urls import reverse
# reverse('detail', args=[5]) -> '/blog/post/5/'
# In a template: {% url 'detail' post.id %}
print('reverse builds URLs from names')

클래스 기반 뷰

Django는 ListView와 DetailView처럼 일반적인 패턴을 적은 코드로 처리하는 클래스 기반 뷰도 제공합니다.

from django.views.generic import ListView
from .models import Post

class PostList(ListView):
    model = Post
print('ListView lists objects automatically')

빠른 확인

뷰와 URL에 대한 이해도를 확인해 보세요.

복습

요청을 뷰에 연결하는 방법을 배웠습니다.

  • 뷰는 request를 받아 응답을 반환합니다.
  • urlpatterns와 path()는 URL을 뷰에 매핑하며, 선택적으로 name을 지정할 수 있습니다.
  • <int:id> 같은 변환기는 URL의 일부를 추출합니다.
  • include()는 앱의 URL을 연결하고, render()와 get_object_or_404()는 유용한 단축 함수입니다.

자주 묻는 질문

“뷰와 URL” 강의는 무료인가요?

네 — “뷰와 URL” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Python Academy 강의 전체를 잠금 해제할 수 있습니다. Python Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“뷰와 URL”에서 뭘 배우나요?

요청을 뷰로 라우팅하기 브라우저에서 직접 실행하는 실습 코드로 Python Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Python Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Python Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.

“뷰와 URL” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Python Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Python Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 프로젝트와 앱
  2. 모델과 마이그레이션
  3. 뷰와 URL
  4. Django 관리자
← Python Academy(으)로 돌아가기