미니 팀 프로젝트 피드백 해결 과정 - 2

2023. 3. 19. 18:22team/team project

피드백

- 플라스크 함수를 5개 썼는데 하나만 사용해서 같은 결과가 나오게끔 고민해 보세요.

 

 

내가 시도해 본 것들

@app.route("/<name>", methods=["GET"])
def detail_kgh_get(name):
    teammate = db.team.find_one({'name': name}, {'_id': False})
    reviews = list(db.reviewlist.find({'name':name},{'_id':False}))
    if (teammate['num'] == '1'):
        return render_template('index_introduce_kgh.html', data=teammate, data1 = reviews)
    elif (teammate['num'] == '2'):
        return render_template('index_introduce_mdh.html', data=teammate, data1 = reviews)
    elif (teammate['num'] == '3'):
        return render_template('index_introduce_lsm.html', data=teammate, data1 = reviews)
    elif (teammate['num'] == '4'):
        return render_template('index_introduce_ijh.html', data=teammate, data1 = reviews)
    elif (teammate['num'] == '5'):
        return render_template('index_introduce_hsy.html', data=teammate, data1 = reviews)

간단하게 if문으로 해결을 해 보았습니다.

 

 

해결과정 

기존의 팀원 별 개인 소개 페이지의 url은 '/1/<name>'과 같은 형식으로 5개를 따로 만들어 분리했었습니다.

처음에는 앞의 숫자 값을 살리면서 가는 방법을 생각해 보았으나 python 파일에서 url 선언부에 숫자를 계속해서 변경하는

방법을 생각하기가 복잡했고, 이미 id라는 변수를 부여해서 데이터를 받아오게끔 설정해 놓았기에 쉽지가 않았습니다.

차선책으로 url을 '/<name>'으로 변경하고 teammate 변수에 담긴 데이터 중 num 필드에 있는 값을 사용해 if 문에 넣은 숫자와 매칭이 되면 해당 html 파일을 return render_template 해주는 방식을 생각해 봤습니다.

 

 

새롭게 알게 된 것

위와 같이 if 문으로 해결을 할 수는 있으나 만약 관리해야 할 데이터가 많아진다면 if 문을 데이터 수에 맞게끔 계속 선언을 해줘야 하는 비효율적 상황이 발생할 수 있겠다는 것을 알았습니다. 다른 방법을 더 생각해 봐야 할 것 같습니다.

'team > team project' 카테고리의 다른 글

A7 - Eco Canvas 로고  (0) 2023.07.05
A6조 팀 프로젝트 S.A  (2) 2023.05.22
미니 팀 프로젝트 피드백 해결 과정 - 1  (4) 2023.03.17