[Django] 2. 서비스 생성

[Django] 2. 서비스 생성

반응형

책에서는 pybo 라는 이름으로 시작한다.

pybo는 이름일뿐이니 원하는 서비스명을 바꿔줘도 상관없다.

장고 프로젝트 터미널에서 django-admin startapp [서비스명]

을 입력하면, 자동적으로 폴더와 다른 파일들이 생성된다.

pybo라는 서비스를 만들었지만, 큰 토대만 있을 뿐, 실제로 서비스되고있는건 없다.

그렇기때문에 127.0.0.1:8000/pybo 에 접속해도 404가 뜰 것이다.

그럼 해당 url이 어떤 응답을 하도록 코드를 수정해주자.

# config/urls.py # url 꾸러미들. from django.contrib import admin from django.urls import path from pybo import views # pybo의 views urlpatterns = [ path('admin/', admin.site.urls), path('pybo/',views.index), # endpoint : pybo, response : index ]

옆에 주석처리가 없는 코드는 자동으로 설정되는 코드이고,

주석으로 달아놓은 라인이 추가한 라인이다.

기본 설정 -> url에 pybo 라는 endpoint를 추가해주고, 해당 url을 통해서 들어오는 요청에 대한 응답은

views.index에서 하도록 설정하라는 의미이다. ( 물론 views는 수정하지 않아서 정상적으로 실행은 안된다. / index는 함수명이다.)

그럼 이제 화면에 표시되는 views의 index 함수를 꾸미러 가보자.

# pybo/view.py from django.http import HttpResponse # http의 응답 def index(request): return HttpResponse('Hi pybo') # Hi pybo를 response해라

httpresponse를 통해 Hi pybo 라는 응답을 주도록 구성했다.

이제 localhost:8000/pybo/ 에 접속하면,

이렇게 화면에 텍스트가 출력된다.

그럼 여기서, pybo/create 같이 url을 확장해 나갈 때, config/urls.py에 하나씩 더해가면서 추가해야하는가?

라는 의문이 든다. 우선, 위와 같은 방식으로 만든다면 그렇다.

우리는 pybo 관련 endpoint들을 전부 pybo 폴더 안에 집어넣고싶다. 그 작업을 진행해보자.

config/urls.py 를 수정해보자.

# url 꾸러미들. from django.contrib import admin from django.urls import path,include from pybo import views # pybo의 views urlpatterns = [ path('admin/', admin.site.urls), # path('pybo/',views.index), # endpoint : pybo, response : index path('pybo/',include('pybo.urls')) # pybo/로 연결되는 endpoint는 전부 pybo.urls에서 가지고온다. ]

include 를 임포트하고, 화면을 보여주는 views자리 대신에 include를 넣어줬다.

주석에서 설명하듯, pybo/ 라고 들어오는 요청은, 모두 pybo.urls와 연결해서 보여주라는 의미이다.

그렇다면, pybo에 urls를 만들어주자.

그 다음

from django.urls import path from . import views urlpatterns = [ path('',views.index), ]

이렇게 적어주면 된다.

config/urls.py와 많이 닮아있다. 하지만, pybo/ 로 들어오는 요청에 대해서 처리하기 때문에,

BASE_URL 이 ~~~/pybo/ 이므로 빈 문자열을 넘겨주고, 보여주는 화면을 views.index로 넘겨주면,

위와같은 출력에 기능만 분리된 서비스가 된다.

반응형

from http://kkiho.tistory.com/28 by ccl(A) rewrite - 2021-12-21 11:27:02