상세 컨텐츠

본문 제목

[JavaScript/Python] 팀프로젝트 중 겪은 오류들(IF문, Event Object)

TIL

by my dev diary 2023. 5. 17.

본문

# 목차

1. 파이썬 조건문

2. 이벤트 객체

3. def

 

 

1. IF문

방명록 삭제 버튼을 누르면 팝업창이 두 번 뜨는 오류가 있었다.

파이썬 조건문을 수정하니 고쳐졌다.

 

@app.route("/comments/delete", methods=["POST"])
def guestbook_delete():
    name_receive = request.form["name_give"]
    comment_receive = request.form["comment_give"]

    doc = {
        'name': name_receive,
        'comment': comment_receive
    }

    result = db.miniproject.delete_one(doc)

    if result.deleted_count == 1:
        return jsonify({'msg':'방명록이 삭제되었습니다.'})
    else:
        return jsonify({'msg': '삭제할 방명록을 찾을 수 없습니다.'})

여기 if문에서 else 부분을 없애니 바로 해결됐다.

 

@app.route("/comments/delete", methods=["POST"])
def guestbook_delete():
    name_receive = request.form["name_give"]
    comment_receive = request.form["comment_give"]

    doc = {
        'name': name_receive,
        'comment': comment_receive
    }

    result = db.miniproject.delete_one(doc)

    if result.deleted_count == 1:
        return jsonify({'msg':'방명록이 삭제되었습니다.'})

이렇게 수정. 두번째 팝업창은 굳이 필요가 없어서 빼버렸다.

 

방명록 삭제 기능 완성.

 


 

2. Event 객체

 

그리고 문제의 방명록 수정기능.

등록, 조회와 크게 다를 게 없어 보였지만 수정하려면 조회된 방명록칸을 글자를 입력할 수 있는 칸으로 바꾸고 이전 데이터를 불러오고 새로운 데이터로 바꾸고 그 데이터를 다시 불러오고.. 생각보다 어려웠다.

 

➔ 방명록 등록, 조회 기능까지는 id가 필요 없음.

하지만 수정하려면 id가 필요함.(그렇지 않으면 모든 방명록이 같이 수정됨.)

이번 프로젝트에서 데이터베이스로 사용한 mongoDB에서는 아이디를 _id로 자동으로 만들어줌.

이 아이디값을 event 객체를 사용하여 가져오면 된다!

여기서 event 객체란?

 

 

Event

- DOM에서 일어나는 이벤트.

- 마우스를 클릭하거나 키보드를 누르는 것과 같이 사용자의 액션에 의해 발생하는 사건을 의미함.

- 브라우저는 이벤트를 감지할 수 있다.

 

 

Event 객체

이벤트가 발생하는 요소 그자체.

 

 

event handler(event listner)

이벤트가 발생하면 작동하는 함수.

 

addEventListner()

@addEventListner('click',&)
function &(event) {
  console.log(event);
}

➔ @를 클릭했을 때, &함수가 작동된다.

 

 

생성자

Event()

생성자. Event 객체를 생성하고 반환한다.

 

 

속성

Event.target

이벤트가 처음에 발생한 대상을 가리킴.

실제 이벤트가 발생하는 위치, 즉 실제 내가 클릭한 요소를 반환.

 

Event.currentTarget

이벤트의 현재 대상. 이벤트 전파 과정 중 지금 이벤트를 수신 중인 객체를 가리킴.

'리타겟팅'(retargeting)으로 인해 중간에 값이 바뀌었을 수 있다.

이벤트가 걸려있는 위치 반환.

 


3. def 함수 정의하기.

def는 함수를 정의할 때 사용한다.

def <함수명>(매개변수) :
       <수행할 문장>

➔ <수행할 문장>을 실행시켜 주는 <함수명>을 가진 함수를 선언하겠다.

 

 

 

 

 

 

 

종일 오류 바로잡느라 보낸 하루..

 

 

+) 코딩 중 막히는 부분이 생기면 팀원분들과 나누고 같이 고민할 수 있어서 좋았다.

하지만 내가 어디서 어려움을 겪는지, 지금 어떤 상황이고 뭐가 문제인지 설명하는 게 생각보다 힘들다.

특히 파이썬은 기본 개념이 부족해서 그런지 내가 뭘 모르는지도 모른 채 물어보는 느낌.

원활한 소통과 프로젝트 진행을 위해서라도 기초지식을 탄탄히 쌓고, 내 상황을 파악한 후에 전달하도록 노력해야겠다.

 

++) 새로 알게된 함수, 객체, 기능 등등이 많았는데 사용할  숙지한  같다가도 하루의 끝에 기록을 남기려니 기억이 안난다.

그동안 기한 안에 프로젝트를 끝내야 하니 오류 해결하는데 급급해서 문제가 풀리면 바로 다음 단계로 넘어가는 경향이 있었다.

앞으론 새로운 걸접하면 그때그때 메모해서 확실히 내 것으로 만들고 기록하는 습관을 가져야겠다.

 

 

 

관련글 더보기

댓글 영역