[TIL] Today I Learned - 221102

2022. 11. 2. 21:06기록/TIL

[TIL] Today I Learned - 221102

 

미니 프로젝트 과정 중 알아갔던 내용 정리

 

url 설계시 주의

지금은 url을 설계하고 해당 url에 맞춰서 각각의 GET / POST / DELETE와 ajax를 통해 값을 주고받는 과정을 진행하고 있다.

//  댓글 생성 기능
function save_privateComment2() {
    let name = $('#name').val();
    let comment = $('#comment').val();
    let num = "2";
    $.ajax({
        type: 'POST',
        url: '/team/i2/private',
        data: {name_give: name, comment_give: comment, num_give: num},
        success: function (response) {
            alert(response['msg'])
            window.location.reload()
        }
    })
}

 

파이썬 코드

@app.route("/team/i2/", methods = ["POST"])
def team_post():
    name_receive = request.form['name_give']
    comment_receive = request.form['comment_give']
    num_receive = request.form['num_give']
    doc = {'name': name_receive,
           'comment': comment_receive,
           'num': num_receive}
    db.privateComment.insert_one(doc)
    return jsonify({'msg': name_receive + '님의 코멘트 등록 완료'})

위의 코드는 오늘 진행하면서 작성한 코드의 일부분이다.

다만 처음 작성한 코드의 경우 지금은 수정을 한 코드지만 경로의 설정이 뒤에 private가 붙어있지않았다. 

해당 추가경로가 존재하지 않아서 이는 전체 댓글을 보여주는 항목에서 오류를 생성했다.

이전 개인 페이지를 가져오는 방식을 /team/i2 GET으로 정의하였었다.

# 댓글 가져오는 코드
@app.route("/team/i2/private", methods = ["GET"])
def private_get():
    comments = list(db.privateComment.find({"num": "2"}, {"_id": False}))
    return jsonify({'comments': comments})
# 개인페이지 불러오는 코드
@app.route('/team/i2', methods =['GET'])
def personal2():
    return render_template('team/i2.html')

그렇다 보니 두 개의 메서드가 서로 충돌이 나서 해당 댓글을 가져오는 부분이 실행이 되지 않았고

원하는 화면이 나오지 않은 것이었다.

 

이러한 부분에서 오늘 url 경로 생성과 메서드 지정의 중요성을 다시 한번 생각해보는 계기가 되었다.

spring 수업을 들을 때 내가 직접적으로 url경로를 설정하는 적이 없어서 이런 경우를 생각하지 못했었지만 

오늘 직접 경로를 생성하고 알아가면서 하나를 깨우친 것 같다.

또한 해당 java script의 ajax 방식으로 파이썬에 데이터를 넘겨주고 받는 형태의 과정도 점점 익숙해져서

처음보다는 수월하게 넘어가는 것을 느꼈다. 

url 설계 부분은 강의를 들었을 때 해당 부분에 대해 귀찮고 번거롭다고 생각하여

따로 중요하다고 생각해 본 적이 없었는데 오늘 기회에 중요한 부분이란 것을 알았기에 다행이라 생각한다

'기록 > TIL' 카테고리의 다른 글

[TIL] Today I Learned - 221107  (0) 2022.11.07
[TIL] Today I Learned - 221104  (0) 2022.11.04
[TIL] Today I Learned - 221103  (0) 2022.11.03
[TIL] Today I Learned - 221101  (0) 2022.11.01
[TIL] Today I Learned - 221031  (0) 2022.10.31