이 Django 포스팅에서는 데이터베이스에 저장된 데이터를 가져와서 템플릿에 표시하는 방법을 살펴보겠습니다.
전제조건
앱을 만들고, 모델을 만들고, 관리자 인터페이스로 작업할 슈퍼 사용자를 만드는 방법을 살펴본 이전 포스팅을 살펴보세요.
그럼 시작해 보겠습니다.
PostgreSQL에서 데이터를 가져와서 템플릿에 표시
1. 먼저 데이터 업로드
우리는 이미 jobs app 내부에 모델 Job을 만들었습니다 . 여기에는 두 개의 필드 ImageField 와 CharField, 특정 작업에 대한 그림을 저장하는 ImageField와 해당 작업에 대한 요약을 저장하는 TextField가 있습니다.
모델 작업 스크린샷:
관리자 패널 스크린샷:
현재 데이터베이스 내부에는 데이터가 없습니다. 이제 관리자 패널을 사용하여 일부 데이터를 업로드해 보겠습니다. (나중 포스팅에서 템플릿을 사용하여 데이터를 업로드하는 방법도 살펴보겠습니다). 따라서 ADD JOB 버튼을 클릭 하고 사진과 텍스트를 업로드하세요.
그래서 두 개의 Job 객체를 추가했습니다. 이제 이를 가져와서 템플릿에 인쇄하는 방법을 살펴보겠습니다.
2. 템플릿 만들기
이제 작업 앱 내에 템플릿을 만들겠습니다 . 이전 포스팅에서 만든 것처럼 앱 외부에서 만들 수도 있습니다. 하지만 해당 템플릿에 작업을 표시할 예정이므로 앱 내부에 작업 앱 과 관련된 템플릿을 만드는 것이 좋습니다 .
따라서 앱 내부에 템플릿을 만들려면 먼저 작업 앱 내부에 template이라는 디렉터리를 만든 다음 템플릿 내부에 앱과 동일한 이름의 디렉터리를 만듭니다. 따라서 디렉토리 구조는 다음과 같습니다.
이 작업 폴더 안에 myjobs.html이라는 HTML 파일을 생성합니다.
3. 템플릿의 URL 경로 생성
URL 경로를 생성하려면 urls.py 파일을 열고 새로 생성된 템플릿 myjobs.html의 경로를 추가하세요.
현재 urls.py에는 관리자 패널을 여는 데 사용한 경로가 하나만 있습니다.
이제 MEDIA_ROOT에서 이미지를 로드하려면 다음 줄을 추가하세요.
+ static(settings.MEDIA_URL, document_root = settings.MEDIA_ROOT)
위 줄에서 static 및 settings를 사용하려면 다음을 가져와야 합니다.
from django.conf.urls.static import static
from django.conf import settings
따라서 최종적으로 urls.py는 다음과 같습니다.
이제 myjobs 템플릿으로 이동하기 위한 경로를 하나 더 추가하겠습니다 .
urls.py:
그래서 저는 두 개의 매개변수가 있는 작업에 대한 새 경로를 추가했습니다. 첫 번째는 myjobs.html 로 이동하기 위한 URL이고 두 번째는 누군가 'domain-name.com/' URL을 열 때 수행할 작업을 설명하는 함수 이름입니다. myjobs', 우리의 경우 에는 https://localhost:8000/myjobs 입니다 .
이제 jobs 앱 의 views.py 내에 showjobs 라는 함수를 만들어야 합니다 . urls.py 에서 작업 앱 의 views.py 파일에 액세스할 수 있는 방법이 궁금하다면 작업 앱의 보기를 가져온 위 코드의 세 번째 줄을 살펴보세요.
4. 템플릿을 반환하는 함수 만들기
views.py 파일을 열고 showjobs라는 함수를 추가합니다 .
views.py:
두 번째 줄에서는 데이터베이스에 저장된 모든 Job 개체에 액세스하기 위해 모델 Job을 가져왔습니다. 5번째 줄에서는 데이터베이스에서 모든 객체를 가져와서 jobs라는 새 변수에 저장합니다. 마지막으로 동일한 키 이름을 가진 작업 변수를 템플릿에 전달합니다.
5. 템플릿 파일을 편집하여 채용 공고 표시
myjobs.html:
이제 서버를 실행하고 아래 링크를 엽니다.
http://localhost:8000/myjobs/
마지막으로 데이터베이스에서 데이터를 가져와 템플릿에 표시했습니다.
작동 방식
사용자가 우리 웹사이트의 웹페이지에 액세스하려고 하면 해당 요청이 urls.py로 리디렉션된다고 가정해 보겠습니다 . 예를 들어 사용자가 domain-name.com/myjobs/(https://localhost:8000/myjobs)에 액세스하려고 시도하면 해당 요청이 도메인 이름 뒤에 'myjobs/'가 있는 경로를 찾는 urls.py로 리디렉션됩니다.
urls.py에는 myjobs에 대한 경로가 있습니다(라인 10).
경로( 'myjobs/' , views.showjobs) ,
요청한 URL을 찾으면 해당 경로와 함께 작성된 함수로 요청이 리디렉션됩니다. 우리의 경우에는 views.showjobs입니다.
뷰에는 showjobs 라는 함수가 있습니다.
이는 요청을 수신하고 데이터베이스에 저장된 모든 개체와 함께 HTML 템플릿 myjobs.html을 사용자에게 반환합니다.
이제 myjobs.html이 사용자에게 표시됩니다.
myjobs.html 페이지에서:
템플릿에는 showjobs 함수 에서 전송된 모델 Job 의 모든 개체가 있습니다 . 따라서 for 루프를 사용하여 모든 객체를 반복 하고 표시합니다.
<img> 태그를 사용한 이미지를 표시하고 요약을 인쇄하려면 <p>가 사용됩니다.
이상이 이 튜토리얼의 전부입니다.
'Python-django' 카테고리의 다른 글
Django 프로젝트를 위한 가상 환경 작업 (0) | 2024.01.27 |
---|---|
Django에서 앱 작업하기 (1) | 2024.01.25 |
Django 모델 (1) | 2024.01.25 |
Django 관리 인터페이스 (0) | 2024.01.25 |
Django PostgreSQL 설치 및 설정 (0) | 2024.01.25 |