설표의 장고




사이트 구조 설계하기





( 수정됨)


환경

OS : Windows 10
python : 3.10.11
Django : 5.0.7

주요 파일 경로

mysite/
|- manage.py
|- config/
    |- urls.py
    |- views.py

읽기 전에

이 글은 이전에 작성한 글에서 설정한 환경을 토대로 합니다.
예제를 따라하는 경우 이전 글을 확인하고 따라해주세요.

사이트 방문시 장고는 어떤 일을 할까?

사이트에 방문하면 웹서버는 다음과 같은 식으로 작업을 수행합니다.

사이트 방문 > 방문 url에 맞는 작업 찾기 > 작업 수행 > 응답

장고 서버는 다음과 같이 작업이 진행된다고 볼 수 있습니다.

사이트 방문 > 방문 url 확인 > urls.py 탐색 > url에 해당하는 views.py 의 function 실행 > function에서 return한 내용을 응답으로 보냄

이해하기 약간 여러운데, 직접 해봅시다.

응답 작성하기

"config" 폴더에 다음과 같은 내용으로 "views.py"를 작성합니다.

# config/views.py

from django import http

def home(request):
    return http.HttpResponse('홈페이지 응답')

"config" 폴더 안에 있는 "urls.py"를 다음과 같이 작성합니다.

# config/urls.py

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

from . import views

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

장고 프로젝트 실행하기

"python manage.py runserver" 명령을 통해 장고 프로젝트를 실행할 수 있습니다.
프로젝트가 실행되면 다음과 같은 메세지를 확인할 수 있습니다.

(django) C:\django\mysite>python manage.py runserver
Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).

You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
July 24, 2024 - 15:10:20
Django version 5.0.7, using settings 'config.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

사이트 방문해보기

"python manage.py runserver" 명령으로 실행한 경우, 웹브라우저 주소창에 "http://127.0.0.1:8000" url을 입력하면 장고 프로젝트로 작동하는 사이트에 방문할 수 있습니다.
방문하면 다음과 같이 "views.py"에서 작성한 대로 "홈페이지 응답"이라는 텍스트를 확인할 수 있습니다.

장고 프로젝트 방문

사이트 구조 설계하기

사이트의 내용을 구성하기 전에, 사이트의 구조에는 어떤 것들이 필요할지 생각해봅시다.

네이버 카페는 어떻게 구성되어 있을까?

여러 명의 이용자들이 글을 작성할 수 있는 간단한 커뮤니티 사이트를 구성할 계획이기 때문에 네이버 카페를 참고해보겠습니다.

네이버 카페 구조 분석

개별 글 페이지

글 제목과 작성자 정보, 작성일, 조회수, 댓글 수, 본문 내용이 존재합니다.
여기서 댓글 수는 단순히 작성된 댓글의 수를 센 것이기 때문에 database에 저장되는 내용은 글 제목, 작성자 정보, 작성일, 조회수, 본문 내용 6개입니다.

개별 글 페이지 - 댓글

개별 글 페이지 하단에는 댓글 영역이 있습니다. 댓글 영역에는 댓글 수와 댓글이 표시됩니다.
댓글에는 댓글 작성자 정보, 댓글 내용, 댓글 작성시간 3개 요소를 필요로 합니다.

글 목록 페이지

글 목록에는 개별 글의 기초적인 내용들이 표시됩니다.
네이버 카페는 말머리, 제목, 작성자, 작성일, 조회, 좋아요 6개의 정보를 표시하는데, 말머리는 글의 생성번호를 뜻하는 것으로 보입니다.

또한 글 제목에는 댓글 수를 포함하여 표시하고 있습니다.

글 목록 페이지 - 페이지

글 목록 하단에는 페이지를 표시하고 있습니다.

글 목록 페이지 - 검색창

페이지 아래에는 게시물을 검색할 수 있는 검색창이 보입니다.

정리

앞서 이야기했듯이 다수의 이용자가 글을 작성할 수 있는 간단한 커뮤니티 사이트를 목표로 합니다.
글을 작성하고 조회하기 위해서는 작성한 내용을 database에 저장해야 하는데, 필요한 data는 다음과 같습니다.

글
  작성자 정보
  제목
  내용
  작성시간
  수정시간
  조회수

댓글
  작성자 정보
  내용
  작성시간
  수정시간

다음 글에서는 이에 해당하는 data를 담당할 model을 작성해보겠습니다.



이 글의 댓글 기능은 일부러 막아놓았습니다. 궁금한 내용이 있다면 게시판을 이용해주세요!


공감 : 0