본문 바로가기

프로그래머/Python

Python - 수정구현 | 생활코딩 강의 복습 | 프로그래밍 공부

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

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


이제 사용자가 업데이트(읽기, 쓰기) 기능을 구현할 수 있게 만들어보자.


if문을 활용하여, 컨텐츠를 생성하였을 때에만 update가 나오게 만들자.

id 값이 있는지 없는지를 체크해, 있는 경우에 update를 할 수 있게 만든다.

id 값이 있는 경우네는 update.py를 연결하고, .foramt(pageId)로

pageId 값을 주소로 준다.



다음과 같이, WEB으로 가면 update 링크가 보이지 않고,



특정 컨텐츠 항목으로 가면, update 링크가 나타난다.



update.py 파일을 만들어보자.

create.py를 복붙하고,


value 라는 속성을 통해,

어떠한 값을 박스 안에 기본적으로 집어넣을 수 있다.

각각 기본 값으로 설정한 form_default_title 과 form_default_description을 

pageId, descriptioin으로 설정해주면,

변경하고자 하는 컨텐츠의 원래 값이 박스에 기본적으로 채워져 있게 된다.



다음과 같이.

그런데 만약 사용자가 제목을 수정하면?

제목에 해당하는 파일을 찾을 수 없을 것이다.

따라서 제목은 우리가 변경하고자 하는 파일의 식별자로 쓰이면 안된다.



따라서 우리는 pageId라는 값을 따로 보내주어야 한다.

pageId는 우리가 수정하고자 하는 파일의 이름을 담고 있을 것이다.

이것을 사용자가 수정하지 못하게할 필요가 있다.

input type="hidden"으로 하고,

value는 form_default_title으로 해준다.



다음과 같이, pageId 값이 같이 전송되는 것을 확인할 수 있다.



따라서 process_update.py에서 pageId는 별도로 받아야한다.

그리고 파일을 열 때, title이 아닌 pageId의 파일을 열어야 한다.

(title은 바뀔 수 있기 때문에)



일단 새로운 값으로 바뀌는 것 까지는 성공.



이제 본문은 바꿨으니, 제목을 바꿀차례.

os.rename(원본, 새로운 이름)을 쓰면 된다.



제목과 본문이 같이 바뀌었다.

당연히 목록도 새 이름으로 바뀐다.