본문 바로가기
Python-django

Django의 템플릿 양식에서 뷰로 데이터를 가져오는 방법

by 코딩하는 욤욤이 2024. 1. 27.
반응형

이 포스팅에서는 템플릿의 HTML 양식에서 views.py 로 텍스트/데이터를 가져와 처리한 다음 해당 데이터를 다른 HTML 페이지로 보내는 방법을 살펴보겠습니다 .

시작하기 전에 프로젝트 폴더에서 어떤 파일이 있고 어떤 디렉터리에 이러한 파일이 저장되어 있는지 살펴보겠습니다.

Django의 템플릿 양식에서 뷰로 데이터를 가져오는 방법


여기서는 템플릿 에 home.html이 있고 프로젝트 폴더의 my_website 디렉토리 에 views.py가 있습니다. 여기서 home.html은 우리 홈페이지이고 템플릿 경로는 settings.py 에 이미 설정되어 있습니다 .

이제 프로젝트 파일과 디렉터리에 대한 기본 아이디어를 얻었으므로 home.html  에서 views.py 의 데이터를 가져오고 해당 데이터를 처리한 후 newpage.html 이라는 다른 HTML 페이지로 보내는 방법을 살펴보겠습니다 .

home.html 

<h1>HOMEPAGE</h1>
<br>
<form action="{% url 'my_function' %}">
<textarea name="fulltextarea" cols=40 rows=10></textarea>
<br />
<input type="submit" value="fetch data!"/>
</form>

Django의 템플릿 양식에서 뷰로 데이터를 가져오는 방법


여기에는 텍스트 영역과 제출 버튼이 있는 양식이 있습니다. 사용자가 데이터 가져오기  라는 이름의 버튼을 누르면 요청이 urls.py 로 리디렉션되고 위 HTML 페이지에 있는 양식 의 작업 속성  에 언급된 대로 my_function 이라는 이름을 찾습니다 . 

urls.py

from django.urls import path
from . import views
 
urlpatterns = [
path('', views.home),
path('newpage/',  views.new_page,  name="my_function")
]


여기에 my_function이라는 이름의 경로가 있습니다 . 여기에는 새 페이지 URL newpage/ 와 views.new_page 함수가 있으므로 요청은 views.new_page 함수로 리디렉션됩니다.

views.py

from django.shortcuts import render
 
def home(request):
return render(request, 'home.html')
 
def new_page(request):
data = request.GET[‘fulltextarea’]
return render(request, 'newpage.html', {'data':data})


이제 여기에는 사용자 요청을 수신하는 new_page 함수가 있으며 다음 줄에서는 home.html 양식 에 입력된 텍스트를 검색합니다 . 여기서는 요청 객체의 GET 메소드를 사용하여 HTML 형식 의 텍스트 영역 에서 텍스트를 가져옵니다 . 우리가 해야 할 일은 GET 메소드의 대괄호 안에 텍스트 영역의 이름을 전달하는 것뿐입니다. 이제 데이터 변수 안에 사용자가 입력한 모든 텍스트가 있습니다 . 이제 문자열 변수 데이터를 사용하여 모든 작업을 처리하거나 수행할 수 있습니다(단어 계산, 각 단어의 빈도 계산, 특정 단어 바꾸기, 입력된 이메일 또는 전화번호 가져오기, Python에서 문자열로 수행할 수 있는 모든 작업 등). 하지만 여기서는 단순히 newpage.html이라는 새 HTML 페이지에 정보를 반환합니다 .

newpage.html

<h1>New page</h1>
 
{{ data }}


여기에는 간단한 제목 New page가 있고 views.py의 new_page 함수 에서 전송된 주요 데이터 값을 인쇄합니다 .

이 프로젝트의 전체 출력은 다음과 같습니다.

Django의 템플릿 양식에서 뷰로 데이터를 가져오는 방법


데이터 가져오기 버튼을 누르세요.

Django의 템플릿 양식에서 뷰로 데이터를 가져오는 방법

 

이제 HTML 양식에서 뷰로 정보를 검색하여 처리하고 뷰에서 HTML 문서로 정보를 보내는 방법에 대한 기본 아이디어를 가지셨기를 바랍니다.

반응형

'Python-django' 카테고리의 다른 글

Django 사용자 정의 웹페이지  (1) 2024.01.27
Django에 HTML 템플릿을 추가하는 방법  (0) 2024.01.27
Django 프로젝트를 위한 가상 환경 작업  (0) 2024.01.27
Django에서 앱 작업하기  (1) 2024.01.25
Django 모델  (1) 2024.01.25