비로그인 작성글 수정,삭제 기능 구현하기 2

Red_Panda·2021년 4월 19일
0

코딩테스트 공부만 계속하면 까먹을 것 같아 오랜만에 예전에 막혔던 부분에서 다시 시작한다.

저번에 비회원글을 삭제할때 다른 form을 적용해 비밀번호를 입력받도록했다.
그런데, 비밀번호가 맞아도, 틀려도 flash가 작동됐었다.

오늘은 그 문제를 해결했다.

먼저 form에 입력받은 비밀번호를 저장하는 코드가 잘못됐었다.
login 부분을보고 응용해서

password = Question.query.filter_by(password=form.password_check.data)

로 했었는데 이 부분은 Question 테이블의 password 값 중에서 내가 form에서 입력한 비밀번호값이 있느냐 없느냐를 따지는 코드였다. 즉, 비밀번호를 저장하는게아니라 있냐 없냐 유무를 저장한 것이다.
그래서 단순하게

password = form.password_check.data

로 해서 했더니 맞게 했을때 아래와 같이 flash 오류가 안뜨는것이다. 그래서 혹시 잘 되는건가? 하고

비밀번호가 111인 게시글에 2222를 입력했을때.

비밀번호 111을 입력했을때


그래서 확실히 하기위해서 코드를 조금 수정해 서로 같다면 flash를 이용해 문구를 띄워봤다.

확실하게 입력된다. 이제 같다면 삭제를 진행해줘야하는데, 안된다.

저기서 이제 elif 내용을을 지워주고, 비밀번호가 같을때

db.session.delete(question)
    db.session.commit()
    return redirect(url_for('question._list'))

를 적용해보기로 했다.

이제 비로그인 상태 질문글을 삭제해보자.

다른비밀번호 입력시 삭제가 안됐다가, 비밀번호 111을 입력하니 해당 글이 삭제됐다.

이제 같은 방식으로 답글, 댓글 등에 적용하면 된다.

다음으로는 검색할때 ip부분을 생각해봐야겠다. 지금은 local에서 테스트하기에 상관없는데 저번에 aws에서 테스트했을때 ip가 다 적히는걸 생각하면 aws로 열기전에 이 부분을 개선해야겠다.

현재 검색을 db에 있는 내용으로 하는거라 화면에서 127.0.0.1을 127...*로 가려봤자 db값에 0.0.1에 대한 내용이 있어 검색 몇번만 하면 해당 ip를 알 수 있게 되기 때문이다.

profile
신입 개발자

0개의 댓글