[django] 점프 투 장고 - 장고 기초 1.

Joy·2020년 6월 16일
1

Django | 점프투장고

목록 보기
3/22

URL, View

APP

앱 생성
(mysite) C:\projects\mysite>django-admin startapp pybo

django-admin의 startapp 명령을 이용하여 pybo앱을 생성 - pybo 앱 관련한 파일과 디렉터리가 생성됨

페이지에 출력하기

  • url.py 수정 : URL매핑정보를 추가

[C:\projects\mysite\config\urls.py]

from django.contrib import admin
from django.urls import path
from pybo import views

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

장고의 urls.py 파일은 페이지 요청이 발생하면 가장 먼저 호출되는 파일로 URL과 뷰 함수간의 매핑을 정의
pybo/ 라는 URL이 요청되면 views.index를 호출하라는 매핑을 추가

  • views.py 수정

[c:\projects\mysite\pybo\views.py]

from django.shortcuts import render
from django.http import HttpResponse

def index(request):
    return HttpResponse("안녕하세요 pybo에 오신것을 환영합니다.")

pybo/views.py 파일에 index 함수를 추가
HttpResponse는 HTTP 요청에 대한 응답을 할 때 사용하는 장고 함수.
index함수의 매개변수 request는 장고 프레임워크에 의해 자동으로 전달되는 HTTP 요청 객체


  • 로컬서버 구동해서 확인하기

python manage.py runserver

URL 분리

  • config/urls.py 파일 수정 필요 :
from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('admin/', admin.site.urls),
     path('pybo/', include('pybo.urls'),
]
  • pybo\urls.py 신규 생성
from django.urls import path
from . import views

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

'pybo/' URL에 대한 매핑이 path('pybo/', views.index) 에서 path('pybo/', include('pybo.urls')) 으로 수정 - pybo/ 로 시작되는 URL이 요청되면 이제 pybo/urls.py 파일의 매핑정보를 읽어서 처리하라는 의미. URL이 추가되더라도 config/urls.py 파일을 수정할 필요없이 pybo/urls.py 파일만 수정하면 됨

config/urls.py 파일에 매핑된 pybo/ 와 pybo/urls.py 파일에 매핑된 '' 이 더해진 최종 URL pybo/가 views.index 함수와 매팽됨. 만약 pybo/urls.py 파일에 path('question/create/', ...) 라는 URL매핑이 추가된다면 최종 매핑되는 URL은 pybo/question/create/가 될 것이다.

정리

  1. 웹브라우저에서 로컬서버로URL(http://localhost:8000/pybo)을 요청
  2. 장고의 urls.py에서 URL을 해석하여 views.py 파일 의 index 함수를 호출 (urls.py 파일에는 URL과 뷰 함수간의 매핑이 정의되어 있다.)
  3. 함수를 실행한 결과를 웹브라우저에 전달
profile
roundy

0개의 댓글