본문 바로가기
개념정리/Django

Django - 단일페이지,연속페이지 작성 순서 & 이벤트 처리 방법

by 화영쌤 2023. 4. 12.
728x90

▷단일 페이지 작성 순서

구분 페이지 작성 순서
DB처리 O views.py 함수생성 → templates/html 생성 → urls.py 패턴정의
DB처리 X views.py 함수생성 → models.py 데이터(CRUD) → templates/html 생성 → urls.py 패턴정의
DB + parameter views.py 함수생성 → parameter 받기(POST or GET 방식) → models.py 데이터(CRUD) → templates/html 생성 → urls.py 패턴정의

  • 예시 : 회사소개, 연혁, 조직도 등 HTML 페이지 하나만 만들어지는 페이지
  • CRUD : 대부분의 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능인 Create(생성), Read(읽기), Update(갱신), Delete(삭제)를 묶어서 일컫는 말

▷연속 페이지 작성 순서

구분 페이지 작성 순서
(파라미터가 있는경우)
최초(목록)페이지
- views.py 함수생성 → parameter 받기(POST or GET 방식) → models.py 데이터(CRUD) → templates/html 생성 → urls.py 패턴정의 

- html 페이지에서 다음페이지로 연결할 url 패턴을 정의(클릭 이벤트) - 보통 버튼 처리가 추가되면서 다음페이지 url 패턴 명시
(파라미터가 있는경우)
최초 이후 페이지
- views.py 함수생성 → parameter 받기(POST or GET 방식) → models.py 데이터(CRUD) → templates/html 생성 → urls.py 패턴정의 

- html 페이지에서 다음페이지로 연결할 url 패턴을 정의(클릭 이벤트) - 보통 버튼 처리가 추가되면서 다음페이지 url 패턴 명시
html 페이지를 만들지 않아도 되는 경우  - views.py 함수생성 → parameter 받기(POST or GET 방식) → models.py 데이터(CRUD) → views.py 함수 내에서 자바스크립트 문자열로 생성(기존 url 패턴 사용) → HTTPResponse() 를 통해 처리

  • 예시 : 게시물, 회원관리, 상품조회 등등( 페이지가 계속 이벤트 (버튼) 을 통해 연결되는 페이지들)

▷이벤트 처리 방법

  • 클릭 이벤트
<input type="button" value="보여지는값" onclick="자바스크립트 함수명()">
<input type="submit" value="보여지는값">
<button onclick="자바스크립트 함수명()">보여지는값</button>
<a href="javascript:자바스크립트 함수명();">보여지는값</a>
<a href="url패턴">보여지는값</a>

  • 데이터 전송(parameter 전송) method ( POST & GET )

-  POST method

<form id = "사용할 아이디이름" method="POST" action="url 패턴">
    <input type = "hidden or text" name = "전송할 이름(key값)" value="입력한 값">
    <select name = "전송할 이름(key값)"><option value=""></option></select>
    <textarea name = "전송할 이름(key값)">value값</textarea>
    <input type ="checkbox or radio" name = "전송할 이름(key값)" value="입력한 값">
</form>

# 사용하는 클릭이벤트
<input type="submit" value="보여지는값">

-  GET method

구분(입력 또는 수정값) method 처리방법
(입력 또는 수정값) 이 없는 경우 - 자바스크립트 함수 사용시 : 
location.href="url 패턴?name=value&name2=value2&...";

- a 태그 이용시:
<a href ="url 패턴?name=value&name2=value2">보여지는값</a>
(입력 또는 수정값) 이 있는 경우  아래 코드블럭과 같음.
##### form 태그 + input(submit) 버튼 사용
<form id = "사용할 아이디이름" method="GET" action="url 패턴">
    <input type = "hidden or text" name = "전송할 이름(key값)" value="입력한 값">
    <select name = "전송할 이름(key값)"><option value=""></option></select>
    <textarea name = "전송할 이름(key값)">value값</textarea>
    <input type ="checkbox or radio" name = "전송할 이름(key값)" value="입력한 값">
</form>
# 사용하는 클릭이벤트
<input type="submit" value="보여지는값">



##### form 태그 + 버튼-자바스크립트 호출방식 사용
<form id = "사용할 아이디이름" method="GET" action="#">
</form>
# 사용하는 클릭이벤트
<input type="button" value="보여지는값" onclick="자바스크립트 함수이름()">
<button onclick="자바스크립트 함수이름()">보여지는 값</button>
# 자바스크립트에 함수 정의
fm = document.getElementById("form태그 아이디 이름");
mem_id = fm.mem_id.value;
url = "/oracle/mem_view/?mem_id="+mem_id;
location.href=url;