메인 페이지 만들기

Django는 여러 개의 앱을 동시에 만들어 조립하는 과정으로 보실 수 있어요. 우리는 간단한 실습이기 때문에 main이라는 앱만을 만들 것입니다. 우선 서버가 동작되고 있으므로 Ctrl + C 버튼을 누르셔서 서버를 종료시킨 다음 아래 명령어를 실행시켜 주세요.

(myvenv)root@goorm:/workspace/컨테이너명/mysite# python manage.py startapp main

아무것도 뜨지 않은 채로 커서가 다음줄로 넘어가면 정상 동작 한 것입니다. 에러가 나오면 에러를 검색해서 에러명을 해결해주세요. 대부분 오타입니다.

Settings에 가셔서 설치되어 있는 앱 목록에 main을 추가해주세요. 이 작업을 하지 않으면 앱이 구동하지 않습니다. 여러 개의 앱을 만들 경우 모두 여기 등록해 주셔야 합니다.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/649be622-9242-4631-811a-a89e0ed1f3ed/Untitled.png

INSTALLED_APPS=[
    'main',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

<aside> 💡 'main' 뒤에 쉼표가 있으니 꼭 체킹해주세요.

</aside>

이제 urls.py를 작성할 것입니다. urls는 사용자가 어떤 url을 사용하여 들어오느냐에 따라 어떤 화면을 보여줄지를 결정하게 됩니다.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/76508c44-bfc4-4e02-abaf-10234b16a339/Untitled.png

mysite > tutorialdjango > urls.py

from django.contrib import admin
from django.urls import path
from main.views import index

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

이 코드 중 path('', index)의 의미는 사용자가 뒤에 무언가 붙지 않은 있는 그대로의 url을 입력하고 들어왔을 경우 main/views.py파일 안에 index라는 함수를 연결시켜 주겠다는 뜻입니다. 여기서 불러온 index는 함수이며, 아직 만들어지지 않았기 때문에 오류가 뜹니다. 이 index함수는 index.html과 연결시켜 줄 것입니다.

<aside> 💡 다음과 같이 정의하면 나중에 url로 불러오기 편하지만, 코드 복잡도가 올라가기에, 초보자 분들이 하기 쉽도록 나중에 처리해주도록 하겠습니다. path('', index, name='index')

</aside>

이제 mysite > main> views.py로 들어와 index라는 함수를 만듭니다. 여기서 사용자가 index.html을 볼 수 있게끔 연결을 해줍니다.

mysite > main > views.py

from django.shortcuts import render

def index(request):
    return render(request, 'main/index.html')