python) 사용자가 전송한 데이터를 수신하고 연동시키기 (Read)

jun_legend·2021년 5월 14일
0

Python-Web Application

목록 보기
7/11
post-thumbnail

"사용자가 전송한 데이터를 수신하고 연동시키기 (Read)"


이전 글에서 구현한 폼을 통해 사용자가 입력하고 전송한 데이터를
수신할 수 있도록 하고 해당 데이터로 파일을 만들어 글 제목 목록을 연동시켜주자.


1) 사용자가 전송한 데이터를 받을 process_create.py 파일을 만들고 실행 권한을 부여

(터미널 - process_create.py가 있는 디렉토리에서 실행)
sudo chmod a+x process_create.py


2) title 과 description 데이터를 전송받기

import cgi
form = cgi.FieldStorage()
title = form["title"].value
description = form["description"].value
  • title(변수명) = form["title"].value (title 값을 받는 방법)

3) 전송받은 title 변수의 값을 이름으로 하는 파일을
data 디렉토리 안에 생성하고 description 변수의 값을 파일의 내용으로 저장하기

opened_file = open('data/'+title, 'w')
opened_file.write(description)
opened_file.close()
  • open('data/'+title, 'w')
    파일을 'w'rite 모드로 열어서
    data 디렉토리 밑에 title 값을 이름으로 하는 파일을 만든다.

  • opended_file.write(description)
    description 값이
    title 값을 이름으로 하는 파일에 쓰기가 됨

  • opened_file.close()
    opened_file 이란 파일을 닫음


4) 사용자가 데이터를 전송한 후 이동할 페이지 설정

print("Location: index.py?id="+title)
print()
  • Location: url 주소
    url 주소로 이동하라는 의미

  • print("Location: index.py?id="+title)
    웹 서버가 웹 브라우저의 요청에
    쿼리스트링으로 title 값을 갖는 index.py url 주소로 이동하라고 응답

  • 참고)
    print("Content-Type: text/html") 는
    웹 서버가 웹 브라우저의 요청에 보내줄 컨텐츠는 text 중에서 html이다
    라고 응답하는 것


5) process_create.py 의 최종 코드는 아래와 같다.

#!/usr/local/bin/python3

import cgi
form = cgi.FieldStorage()
title = form["title"].value
description = form["description"].value

opened_file = open('data/'+title, 'w')
opened_file.write(description)
opened_file.close()

print("Location: index.py?id="+title)
print()

이제 create 페이지 폼에 title 값과 description 값을 입력하고
submit(제출)을 클릭하면
data 디렉토리에 title 값의 파일이 생성되고
쿼리스트링이 title 값인 페이지로 이동한다.

➡ 이와 같이 웹 서버가 사용자를 원래있던 페이지가 아닌
다른 페이지로 보내는 header 를 Redirection 이라고 한다.




[출처] 생활코딩 WEB2 - Python
https://opentutorials.org/module/3357

0개의 댓글