๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Web Development

[Django] ์—‘์…€ ๋ฐ์ดํ„ฐ ์ถœ๋ ฅ ํŽ˜์ด์ง€ ๋งŒ๋“ค๊ธฐ(6) - result ํŽ˜์ด์ง€ ๊ตฌ์„ฑ

by ISLA! 2023. 8. 3.

๐Ÿง‘๐Ÿป‍๐Ÿ’ป ์•ž์„œ ์‹คํ–‰ํ•œ ๊ฒฐ๊ณผ๊ฐ’์„ ์„ธ์…˜์— ์ €์žฅํ•˜์—ฌ 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