[210616 TIL - (2)] Python
form
사용자로부터 정보를 입력받는 양식
<p><input type="text" name="title" placeholder="title"></p>
<p><textarea name="description" placeholder="description"></textarea></p>
<p><input type="submit"></p>
- input type을 설정해 텍스트를 입력하는 창을 만들 수 있다.
- placeholder에는 텍스트창에 텍스트를 입력하기 전의 상태에 나타낼 글자를 입력할 수 있다.
- name="title"은 서버로 전송될 때 텍스트창에 입력한 정보를 title이라는 이름으로 전송하겠다는 뜻.
<form action="process_create.py">
<p><input type="text" name="title" placeholder="title"></p>
<p><textarea rows="4" name="description" placeholder="description"></textarea></p>
<p><input type="submit"></p>
</form>
- form태그에 action 속성으로 input값을 보낼 주소를 적으면 input 텍스트창에 입력한 정보가 그 주소로 전송된다.
ex) /process_create.py?title=CGI&description=CGI+is+...
=> title에 CGI, description에 CGI is...를 입력했을때의 주소
<form action="process_create.py" method="post">
- method를 설정하지 않으면 자동으로 GET방식으로 method가 설정된다.
- method를 POST 방식으로 설정해 주었다.
HTTP method
HTTP 메서드는 서버에 클라이언트가 요청을 보내는 방법이다. HTTP의 메서드 종류에는 GET, POST, PUT, PATCH, DELETE등이 있다.
-
GET
정보를 가져오기 위한 요청 -
POST
정보를 작성하기 위한 요청
전송한 정보 처리
#!/usr/bin/python3
print("Content-Type: text/html")
print()
import cgi
form = cgi.FieldStorage()
title = form["title"].value
description = form["description"].value
print(title, description)
opened_file = open('data/'+title, 'w')
opened_file.write(description)
CGI CGI is ...
- form이 정보를 보내기로 한 파일 process_create.py에 위 내용르 넣는다.
- title에 입력한 내용이 title이 되고 description에 입력한 내용은 description이 된다.
- opened_file = open('data/'+title, 'w')
opened_file.write(description)
data/+title에 파일이 쓰기 형식으로 만들어지고 description에 해당되는 값이 'data/'+title에 해당하는 파일에 쓰기가 된다.
- 여기서 파일이 data 디렉토리에 추가가 되지 않았는데 chmod 777 data를 이용해 디렉토리의 폴더 권한을 모든사용자가 쓰기, 읽기, 실행 가능하도록 바꿔주면 잘 실행된다 .
유튜브 댓글님 감사합니다.
Redirection
print("Location: index.py?id="+title)
print()
- 사용자를 웹 서버가 지정한 페이지로 보내버리는 헤더
- 사용자가 title을 입력하면 id값을 title로 받아 그 페이지로 이동하게 됨
#!/usr/bin/python3
print("Content-Type: text/html")
print()
import cgi
form = cgi.FieldStorage()
title = form["title"].value
description = form["description"].value
print(title, description)
opened_file = open('data/'+title, 'w')
opened_file.write(description)
CGI CGI is ...
opened_file.write(description)
data/+title에 파일이 쓰기 형식으로 만들어지고 description에 해당되는 값이 'data/'+title에 해당하는 파일에 쓰기가 된다.
print("Location: index.py?id="+title)
print()
<참고>
- https://www.zerocho.com/category/HTTP/post/5b3723477b58fc001b8f6385
- https://youtube.com/playlist?list=PLuHgQVnccGMDMxfZEpLbzHPZUEwObEaZq
Author And Source
이 문제에 관하여([210616 TIL - (2)] Python), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@rimi0108/210616-TIL-2-Python저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)