본문 바로가기

dev/django

[django] Hello world

[django] 프레임워크란?

[django] 프로젝트 생성, 개발 서버 구동하고 접속하기


 

프로젝트 생성은 했다만 우리가 만든 개발 서버는 아직 아무 기능도 할 수 없다

우리가 개발 언어를 배울 때 제일 먼저 해보는 것이 있지 않은가?

그렇다 이번엔 Hello world를 출력해볼 것이다

 

앞서 우리가 startproject config .로 폴더 내에 프로젝트 파일을 생성하고 나면 디렉토리 구성은 아래와 같았다

앞선 글에서 장고는 많은 기능이 있고 우리는 그걸 입맛에 맞게 사용하면 된다고 했다

그럼 일단 뭔가 하기를 위해선 앱이 필요할 것 아닌가? 앱을 만들어보자

 

터미널을 열고 mysite 로 이동한 후 다음과 같은 명령을 입력한다

django-admin startapp 앱 이름

그럼 아래와 같이 새로운 폴더와 파일이 생성된다

당장 하나하나가 무슨 일을 하는지는 알 필요 없고

 

다시 서버를 열고 'http://localhost:8000/앱 이름'로 접속하면

404에러가 뜬다

당황하지 말고 어떤 오류인지 잘 읽어보면 요청한 /앱 이름 의 URL에 해당되는 매핑이 없다고 한다

없으면 추가하면 된다 그럼 어디에 추가해야될지 생각해보자

url 에 매핑을 추가해줘야 하는 것이 해결책인데 그럼 url과 관련된 파일을 찾으면 된다

 

config 폴더에 urls.py 에 들어가면 아래처럼 되어 있을텐데

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

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

아래처럼 바꿔주자

from django.contrib import admin
from django.urls import path
from app_1 import views # app_1에서 views를 불러온다

urlpatterns = [
    path('admin/', admin.site.urls),
    path('app_1/', views.index), # app_1/ URL이 요청되면 views 파일의 index 함수를 호출하라
]

추가된 내용은 views 에 관련된 내용이지만 우린 아직 views는 들여다 본적도 없으니

어서 views를 수정해보자 생성한 app_1 폴더의 views 파일을 열면 다음과 같이 되어있는데

from django.shortcuts import render

# Create your views here.

주석은 지우고 아래와 같이 내용을 추가하자

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

def index(request):
    return HttpResponse("Hello world")

다시 서버를 열고 'http://localhost:8000/앱 이름' 으로 접속하면 Hello world가 출력되는 것을 확인할 수 있다