본문 바로가기

프로그래머/Python

Python - form | 생활코딩 강의 복습 | 프로그래밍 공부

* 이 포스팅은 생활코딩 강의를 들으며 내용을 정리한 것이며, 

모든 내용은 https://opentutorials.org/ 에서 보실 수 있습니다.*


지금까지 만들었던 웹 어플리케이션은 사이트의 소유자만이 컨텐츠를 만들 수 있었다.

 사용자가들이 직접 자신의 컨텐츠를 생산할 수 있게 해보자.


사용자부터 정보를 입력하는 양식(form)을 만들어보자.

우선, 글쓰기 링크를 만들고 그 링크를 클릭하면 글쓰기 페이지로 이동할 수 있게 해보자.

create.py라는 링크를 만든다.



짜잔!



<p> 태그 -> 줄바꿈이 되는 특징

input type="text"를 사용함으로써 사용자가 텍스트를 입력하는 박스를 만들 수 있다.

placeholder="title"이라는 것은 박스 내부에 title이 입력이 되었다가, 

무언가를 입력하면 사라진다.

다시 <p> 태그로 본문을 작성할 수 있게.

<textarea> 태그로 여러줄을 입력할 수 있는 박스가 나온다.

rows="4" -> 4줄

textarea의 placeholder은 description으로 넣어주자.

전송 버튼은 <input type="submit">으로 만들 수 있다.



짜잔!



title과 description 에 각각 name="title", name="description"을 넣어줌으로써,

입력한 정보가 name에 해당하는 이름으로 전송되도록 할 수 있다.

이 전체의 form과 관련된 정보를 <form> 태그로 감싸주고,

action=" "을 활용해 어디로 보낼지(process_create.py) 설정해준다.



입력해보자.

제출을 누르면,



title과 description이 포함된 주소로 바뀌는 것을 볼 수 있다.

따라서 form은 url querystring을 만들어준다고 할 수 있다.

그리고 url querystring은 웹 어플리케이션에서 입력 값이 된다.

(title&description)



하지만 글을 쓰거나 할 때, 주소로 query string를 써버리면,

다른 사람들이 이 주소로 들어왔을 때, 글이 써져버리는 문제가 생길 수 있다.

(또는 데이터 삭제)


따라서 사용자가 정보를 서버 쪽으로 전송/삭제/수정하는 경우에는,

query string을 쓰면 안된다.

이럴 때는 get 방식이 아닌 host 방식을 써야한다.

method="post"를 쓰면, 제출을 눌러도 url이 바뀌지 않는다.



검사를 눌러 확인해보면,

사용자가 입력한 데이터가 url이 아닌 다른 방법으로 

'은밀하게' 전송된다.