Django는 강력하고 오픈 소스인 Python 기반의 웹 프레임워크로, 웹사이트와 웹 앱을 만들고 관리하는 과정을 간소화합니다. Django 애플리케이션은 확장 가능하고 성능이 뛰어나며 안전합니다. 또한 프레임워크의 모든 부분에 대해 매우 훌륭한 문서를 제공합니다.
저희의 Django 시리즈에서 우리는 기본적인 블로그 기능을 갖춘 샘플 웹사이트를 구현하며 Django를 탐구해 왔습니다. 이 가이드에서는 Django 앱을 위한 샘플 뷰를 만드는 단계를 살펴보겠습니다.
전제 조건
이 가이드를 따르려면 다음 구성 요소가 필요합니다.
- 적절한 설정이 완료된 Ubuntu 서버. 다음에 대해 자세히 알아보세요: Ubuntu 서버 설정하기.
- 올바르게 구성된 Python 개발 환경.
- 데이터베이스 서버(예: MySQL). 이 가이드에서는 다음에 대해 자세히 설명합니다: Ubuntu 서버에 MySQL 설치 및 구성하기.
이 가이드는 Django 시리즈의 연속입니다. 먼저, 다음의 이전 가이드를 확인하는 것이 유용합니다: Django 설정하기, Django 데이터베이스 연결 설정하기, 모델 생성하기, 그리고 Django 관리자 인터페이스 활성화하기.
이 가이드에서는 웹 앱이 웹 요청을 올바르게 처리하고 적절한 응답을 반환할 수 있도록 하는 Django 뷰를 만드는 방법을 보여줍니다. Django 공식 문서에 설명된 대로, 웹 응답은 웹페이지의 HTML 콘텐츠, 리디렉션 또는 HTTP 오류가 될 수 있습니다. 뷰 함수가 Python 경로 내에 있는 한 이를 저장할 고정된 위치는 없습니다. 하지만 파일을 명명하고 배치하는 데 널리 쓰이는 규칙이 있습니다. 이 가이드는 해당 규칙을 따릅니다.
1단계. 가상 환경 활성화하기
Django는 Python 가상 환경 내에서 작동하는 것이 가장 좋습니다. 우리의 Django 앱인 sample_app 은 전용 가상 환경 내에 구축되어 있습니다. 먼저 가상 환경을 활성화합니다:
|
1 2 3 |
cd sample_app/ . sample_app_env/bin/activate |
2단계. 뷰 함수 만들기
블로그 웹사이트의 모델이 있는 random_app 디렉터리로 이동합니다:
|
1 |
cd random_app/ |
여기서 views.py 파일에 뷰를 생성하는 데 필요한 코드가 저장됩니다. 텍스트 편집기에서 이 파일을 엽니다:
|
1 |
nano views.py |

우리는 render() 라이브러리의 django.shortcuts 함수가 필요하므로 첫 번째 줄은 그대로 유지됩니다. render() 함수는 템플릿과 컨텍스트를 결합하여 적절한 HttpResponse 객체로 반환되도록 도와줍니다.
첫 번째 뷰는 인덱스 페이지에 접속하는 사용자를 환영합니다. Django 라이브러리 함수 HttpResponse()에서 http:
|
1 2 3 4 5 6 7 8 |
from django.shortcuts import render from django.http import HttpResponse def index(request): return HttpResponse(환영 페이지에 접속하셨습니다') def individual_post(request): return HttpResponse('개별 게시물이 여기에 표시됩니다') |

파일을 저장하고 편집기를 닫습니다.
3단계. URL을 뷰에 매핑하기
지금은 이 함수들에 지정된 URL이 없기 때문에 액세스할 수 없습니다. URL 구성 파일 내에 다른 블록인 urlpatterns을 추가해야 합니다. Python에서는 이를 URLconf (URL 구성) 파일이라고 부릅니다.
Django는 사용할 루트 URLconf 모듈을 결정해야 합니다. 그런 다음, 리스트 구조로 모든 URL 패턴을 포함하는 urlpatterns을 살펴봅니다. Django는 첫 번째 일치 항목을 찾을 때까지 파일을 탐색합니다. 일치 항목을 찾으면 Django는 이와 관련된 뷰를 찾습니다. 이 뷰 함수는 URL 패턴과 관련된 데이터 및 HttpRequest 객체를 받게 됩니다. 이 과정의 어느 지점에서든 오류가 발생하면 오류 처리 뷰.
텍스트 편집기에서 urls.py의 random_app 파일을 엽니다:
|
1 |
nano urls.py |
다음 코드를 입력합니다:
|
1 2 3 4 5 6 7 |
from django.urls import path from . import views urlpatterns = [ path('', views.index, name='index'), path('post/', views.individual_post, name='individual_post') ] |

파일을 저장하고 편집기를 닫습니다.
완료되면, 다음 아래에 URL 파일의 경로도 포함해야 합니다. sample_app 디렉터리의 URLconf. 그렇지 않으면 Django 앱이 이를 인식하지 못합니다. 왜냐하면 URLconf 의 sample_app 이 설정 파일에서 ROOT_URLCONF 로 설정되어 있기 때문입니다.
우리 앱의 디렉터리로 이동합니다. sample_app:
|
1 |
cd sample_app/sample_app/sample_app/ |
![]()
텍스트 편집기에서 urls.py 파일을 엽니다:
|
1 |
nano urls.py |

파일에 다음 코드를 입력합니다:
|
1 2 3 4 5 6 7 |
from django.contrib import admin from django.urls import include, path urlpatterns = [ path('admin/', admin.site.urls), path('', include('random_app.urls')) ] |

변경 사항을 테스트해 보겠습니다. 다음에서 Django 앱 서버를 실행합니다. localhost:8000:
|
1 |
python manage.py runserver localhost:8000 |

다음 URL로 이동합니다:
|
1 |
localhost:8000 |

포스트의 URL을 확인합니다:
|
1 |
localhost:8000/posts |
4단계. 블로그 포스트 만들기
URL 패턴을 설정하고 워크플로우를 살펴보았습니다. 이제 샘플 블로그를 추가하고 결과를 확인할 차례입니다.
관리자 패널에서 random_app 페이지로 이동합니다:
|
1 |
localhost:8000/admin/random_app/ |

클릭합니다. +Add 링크를, 다음 Posts 행에서:

새 웹 페이지에는 다음과 같은 필드로 구성된 양식이 표시됩니다.
- Title: 블로그 포스트의 제목입니다.
- Slug: 사람이 읽을 수 있는 키워드로 구성된 유효한 웹 주소의 일부를 의미합니다. 일반적으로 슬러그는 포스트 제목을 기반으로 생성됩니다.
- Content: 블로그 포스트의 본문입니다.
- Author: 관련 사용자 이름입니다.
포스트를 제출하려면 SAVE 를 클릭합니다:

5단계. 데이터베이스에 데이터 표시하기
다음 섹션에서는 데이터베이스를 작업합니다. MySQL에 Django 전용 사용자로 로그인합니다:
|
1 |
mysql -u sample_app_user -p |

포스트가 데이터베이스에 성공적으로 등록되었는지 확인해 보겠습니다:
|
1 |
USE sample_app_data; |

|
1 |
SELECT * FROM random_app_post; |

짜잔! 포스트가 성공적으로 등록되었습니다! 이제 MySQL 셸을 종료할 수 있습니다.
6단계. 추가 뷰 조정
뷰에서 할 수 있는 몇 가지 작업이 더 있습니다. 텍스트 편집기에서 파일을 엽니다:
|
1 |
nano views.py |
코드는 다음과 같아야 합니다:
|
1 2 3 4 5 6 7 8 9 10 |
from django.shortcuts import render from django.http import HttpResponse from .models import Post def index(request): return HttpResponse('Hello, welcome to the index page.') def individual_post(request): recent_post = Post.objects.get(id__exact=1) return HttpResponse(recent_post.title + ': ' + recent_post.content) |

여기서는 다음에 대한 추가 import 문을 추가했습니다: Post. 또한 HttpResponse 의 따옴표로 둘러싸인 문자열이 블로그 포스트의 데이터로 대체됩니다. 데이터를 참조하기 위해 관련 객체와 함께 블로그 포스트 ID를 사용하고 있습니다. 이 ID는 다음 변수에 저장됩니다: recent_post. 이제 마침표 구분 기호와 필드명을 덧붙여 객체의 특정 필드를 추출할 수 있습니다.
변경한 후, 변경 사항을 확인해 보겠습니다. Django 서버를 실행합니다:
|
1 |
python manage.py runserver localhost:8000 |

이제 Posts 페이지에 접속합니다:
|
1 |
localhost:8000/posts |

우리가 생성한 블로그 포스트가 표시되어야 합니다.
7단계. 프로젝트 종료
Django 서버를 종료하려면 Ctrl + C를 터미널에서 누르세요. Python 가상 환경을 비활성화하려면 다음 명령을 실행하세요:
|
1 |
deactivate |
마치며
이 가이드에서는 random_app 의 데이터베이스에서 웹페이지에 텍스트를 표시하고, 뷰를 생성하고, URL 패턴을 매핑하는 방법을 Django에서 성공적으로 시연했습니다..이것들은 이해하고 마스터해야 하는 Django의 필수적인 기본 개념입니다.
다음은 Django 앱을 생성하고 관리하는 데 도움이 되는 추가 리소스입니다:
- 데이터베이스 연결이 포함된 Django 앱 만들기: 튜토리얼
- Ubuntu에서 Docker를 사용하여 Django 및 Gunicorn 애플리케이션 구축하기
- Docker, Nginx 및 Let’s Encrypt를 사용하여 Django 애플리케이션을 보호하고 확장하는 방법
즐거운 컴퓨팅 되세요!

댓글
아직 댓글이 없습니다. 첫 번째로 작성해 보세요.