Web Development

[Django] μ—‘μ…€ 데이터 좜λ ₯ νŽ˜μ΄μ§€ λ§Œλ“€κΈ°(6) - result νŽ˜μ΄μ§€ ꡬ성

ISLA! 2023. 8. 3. 11:42

πŸ§‘πŸ»‍πŸ’» μ•žμ„œ μ‹€ν–‰ν•œ 결과값을 μ„Έμ…˜μ— μ €μž₯ν•˜μ—¬ result νŽ˜μ΄μ§€μ— λ³΄μ—¬μ€˜μ•Ό ν•œλ‹€ 

 

1. calculate ν•¨μˆ˜λ₯Ό μ΄μ–΄μ„œ μž‘μ„±ν•œλ‹€

  • calculate > views.py >> calculate(request)
  • κ²°κ³Ό κ°’ 2개의 λ”•μ…”λ„ˆλ¦¬λ₯Ό μ„Έμ…˜μ— μ €μž₯ν•˜λŠ” 것!
# κ²°κ³Ό 값을 μ„Έμ…˜μ— μΆ”κ°€ / Pandas λ°μ΄ν„°νƒ€μž…μ„ 파이썬 기본데이터 νƒ€μž…μœΌλ‘œ λ³€ν™˜ν•„μš”
    grade_calculate_dic_to_session = {}
    for key in grade_list:
        grade_calculate_dic_to_session[int(key)] = {}
        grade_calculate_dic_to_session[int(key)]['max'] = float(grade_calculate_dic[key]['max'])
        grade_calculate_dic_to_session[int(key)]['avg'] = float(grade_calculate_dic[key]['avg'])
        grade_calculate_dic_to_session[int(key)]['min'] = float(grade_calculate_dic[key]['min'])
    request.session['grade_calculate_dic'] = grade_calculate_dic_to_session
    request.session['email_domain_dic'] = email_domain_dic

  
    return redirect("/result")

 

2. result ν•¨μˆ˜ μˆ˜μ •

  • ν˜„μž¬ μ•žμ„œ μ €μž₯ν•œ 두 개의 μ„Έμ…˜ 값이 μš”μ²­μœΌλ‘œ λ“€μ–΄μ˜¨ μƒνƒœ
    • μ—‘μ…€ 파일 뢄석 결과인 grade_calculate_dic & email_domain_dic 의 κ°’
  • main > views.py >> result ν•¨μˆ˜
    • result 패슀둜 redirect λ˜μ—ˆμœΌλ‹ˆ, result ν•¨μˆ˜λ₯Ό ν™•μΈν•΄λ³΄μž
    • λ³΄μ•ˆ 상 μ•žμ„œ μ €μž₯ν•œ μ„Έμ…˜μ˜ 두 개 정보λ₯Ό μƒˆλ‘œμš΄ 객체 'content'에 μ €μž₯ & μ•žμ„œ μ €μž₯된 μ„Έμ…˜μ€ μ‚­μ œ
    • content μ €μž₯ 정보λ₯Ό main/result.html 에 λ‚˜νƒ€λ‚˜κ²Œ 함
def result(request):
    if 'user_name' in request.session.keys():
        #λ³΄μ•ˆμ„ μœ„ν•΄ μƒˆλ‘œμš΄ 객체에 μ €μž₯
        content = {}
        content['grade_calculate_dic'] = request.session['grade_calculate_dic']
        content['email_domain_dic'] = request.session['email_domain_dic']

        #κΈ°μ‘΄ μ„Έμ…˜ μ‚­μ œ
        del request.session['grade_calculate_dic']
        del request.session['email_domain_dic']

        return render(request, "main/result.html", content)     #μ‚¬μš©μž μ„Έμ…˜ 정보가 λ‹΄κΈ΄ μƒνƒœμ—μ„œμ˜ result.html
    else:
        return redirect('main_signin')

 

3. result.html μˆ˜μ •

  • main > result.html
  • μ—‘μ…€ 계산 결과값이 λ‚˜νƒ€λ‚˜λ„λ‘ 함
  • ν•΄λ‹Ή λΆ€λΆ„μ˜ μ½”λ“œ
<div class='body'>
            <div class="resultDiv">
                <h3> * Excel κ²°κ³Ό 확인 *</h3>
                <h4> - grade별 μ΅œμ†Ÿκ°’, μ΅œλŒ“κ°’, 평균값</h4>
                {% for key, value in grade_calculate_dic.items %} 
                    <h5>GRADE: {{ key }}</h5>
                    <p><strong>μ΅œμ†Ÿκ°’ : </strong> {{ value.min }}</p>
                    <p><strong>μ΅œλŒ“κ°’ : </strong> {{ value.max }}</p>
                    <p><strong>평균값 : </strong> {{ value.avg }}</p>
                    <br>
                {% endfor %}
                <br>
                <h4> - 이메일별 μ£Όμ†Œ 도메인 인원 </h4>
                {% for key, value in email_domain_dic.items %}
                    <p><strong>{{ key }}: </strong> {{ value }}λͺ…</p>
                {% endfor %}
            </div>
            <hr>
        </div>

 

 

result νŽ˜μ΄μ§€κ°€ 잘 λ‚˜μ˜€λŠ”μ§€ ν…ŒμŠ€νŠΈ

 

 

πŸ‘‰ 파일 μ—…λ‘œλ“œν•œ ν›„, κ²°κ³ΌνŽ˜μ΄μ§€κ°€ λ‹€μŒκ³Ό 같이 λ‚˜μ˜¨λ‹€

 

728x90