티스토리 뷰

삭제는 젤 간단혀

 

index.py

form = cgi.FieldStorage() # cgi에서 제공하는 함수를 통해 페이지에 있는 정보들을 가져옴
if 'id' in form:
    pageId = form["id"].value
    f = open('data/'+pageId,'r', encoding='UTF-8')
    desc = f.read()
    f.close()
    modify = '<a href="modify.py?id={}">수정하기</a>'.format(pageId)
    delete_action = '''		# <-- 여기 부터
        <form action = "process_delete.py" method="POST">
            <input type="hidden" name="title" value="{}"/>
            <input type="submit" value="삭제">
        </form>
    '''.format(pageId)		# <-- 여기까지 추가
else:
    pageId = "Welcome"
    desc = "Hello, Web"
    modify = ''
    delete_action = ''		# <-- 여기 추가

print('''
    <!doctype html>
    <html lang="ko">
    <head>
    <meta charset="utf-8">
    <title>web python </title>
    </head>
    <body>
    <h1><a href="index.py">Web</a></h1>
    <ol>
        {list}
    </ol>
    <a href="create.py">글쓰기</a>
    {update_link} {delete_action}	# <-- 여기 추가
    <h2>{title}</h2>
    <p>{description}</p>
    </body>
    </html>
'''.format(list=listStr,title=pageId, description=desc, update_link=modify, delete_action=delete_action))
# <-- format 추가

삭제는 눈에 보여줄게 없으니까 그저 id값만 전달해주는 폼만 만들면 된다.

그리고 파일을 삭제하는 기능을 수행하는 process_delete.py만 만들면 됨


process_delete.py

#!python

import cgi, os
form = cgi.FieldStorage()

title = form["title"].value
os.remove("data/"+title)

print("Location: index.py")
print()

title 값과 파일 명이 동일하므로 얘를 이용해서 파일을 삭제한다.

os.remove(파일) 이 형식으로 삭제를 요청하면 된다.

 

그리고 더이상 보여줄 화면이 없으니까 welcome페이지로 이동하게 한다. (id 값을 안줘도 됨)


Delete 기능 구현 결과

 

1. 삭제 버튼 클릭

2. 삭제 완료 및 웰컴페이지 이동

방금 삭제한 파일이 없어진 것을 볼 수 있다.

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함