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 |