Django

Django GET 메서드 기초

zhelddustmq 2024. 8. 12. 20:54

1. 아래 그림과 같이 data_throw.html 생성 및 urls.py에 path추가, views.py에 data_throw함수 추가해줌(모르겠으면 이전 글 보기)

 

2. data_throw.html 아래와 같이 수정

 

<form> 태그: 버튼, 텍스트, 드랍다운, 선택 등 웹에서 유저에게 데이터를 입력받는 여러가지 형식을 제공. 또한, 유저의 데이터를 서버로 전송하는 역할 담당.

  • action: 어디로 데이터를 보낼건지 주소 설정. 작성이 안되어 있거나, action = "" 이렇게 빈 문자열을 넣으면 디폴트 값은 현재 페이지
  • method: GET, POST, PUT, DELETE 등의 어떤 Http Method인지 결정해줌. 이때 Http Method란,  HTTP에서 수행할 작업을 나타냄. 디폴트 값은 GET

 

<label> 태그

  • for: <input> 태그의 id와  동일하게 하면 label과 input을 묶어줄 수 있음. 그러면 label을 클릭해도 input이 선택됨.

<input> 태그

  • type: text, date, password 등의 입력 받을 데이터 타입 결정.  디폴트 값은 text
  • id: input 태의 변수 이름
  • name: 입력 받은 데이터가 저장되는 속성의 key이름(key: name / value: 입력 값)

 

<button> 태그

  • type: submit, reset, button 등의 버튼의 종류를 결정. 디폴트 값은 submit이고, 폼의 전송기능 담당.

 

입력을하면
현 주소창 뒤에 저런식으로 붙음

쿼리스트링(Query String Parameter)

  • 데이터를 URL주소에 포함시켜 전송하는 방식
  • ? 뒤에 데이터가 위치
  • & 로 연결된 key=value 형태로 구성
  • → https://www.testsite.com/path1/path2?key=value&key2=value2

 

3. 서버에서 데이터 받기

  • 클라이언트에서 GET 방식으로 보낸 데이터를 서버에서 받음
  • → 쿼리스트링 방식
  • 이러한 데이터를 받는 방식은 사용하는 ‘도구’ 마다 구현방식이 다름
  • → 이 포스터에서는 Django

- 아래와 같이 새 코드 작성

4. data_throw.html의 Form action 수정하기(data-throw의 form 속성을 data-catch로 넘김)

{% extends 'base.html' %}

{% block content %}
		<h1>Data Throw</h1>
		
		<form action="/data-catch/" method="GET">
				<label for="message">메세지 입력</label>
				<input type="text" id="message" name="message">
				<button type="submit">전송</button>
		</form>
		
{% endblock content %}

 

5. views.py수정하기(View에서 데이터 받아서 Context 넘기기)

def data_catch(request):
		message = request.GET.get("message")
		context = {
				"data" : message,
		}
		return render(request, "data_catch.html", context)

 

6. data_catch.html 수정

{% extends 'base.html' %}

{% block content %}
		<h1>Data Catch</h1>
		
		<div>
				<h2>Current Data</h2>
				<p>Current data is: {{ data }}</p>
		</div>
        
        <a href="http://127.0.0.1:8000/data-throw/">다시 데이터 보내러가기</a>
{% endblock content %}

<a> 태그

    • href (Hypertext Reference): 연결하고 싶은 주소를 지정
    • target  : 링크 클릭 시, 창의 형태를 지정
      _blank : 새로운 탭에 연결된 사이트 창이 열린다.
       _self : 열려진 창에서 주소창으로 새로운 페이지가 열린다.
       _top : 부모 창에서 열리며 부모창이 없다면 _self와 같다.
       _bottom : 가장 사우이 창에서 열린다. 없다면 _self와 같다.
  • title : 링크에 대한 설명
  • 아직 방문하지 않은 링크(unvisited link): 밑줄, 파란색
  • 방문했던 링크(visited link): 밑줄, 보라색
  • 활성화된(현재 마우스가 클릭하고 있는) 링크(active link): 밑줄, 빨간색

출처: https://mjmjmj98.tistory.com/122 [👾:티스토리]

모든 주소 대신 /data-throw/만 적어줘도 동작

'Django' 카테고리의 다른 글

모델 및 마이그레이션  (0) 2024.08.14
url 변수, 앱 분리, Naming URL Patterns(장고)  (0) 2024.08.13
Django Template System 기초  (0) 2024.08.09
장고를 이용한 처음 세팅  (0) 2024.08.08
장고(Django) 간단 소개  (0) 2024.08.08