본문 바로가기
python

Django로 회원가입/로그인 페이지 만들기 (Python) - 6탄

by 포 키 2023. 8. 3.
728x90

이번 시간엔 불러온 엑셀파일의 데이터를 읽어오는 것을 먼저 해보자

2023.08.02 - [python] - Django로 회원가입/로그인 페이지 만들기 (Python) - 5탄

 

Django로 회원가입/로그인 페이지 만들기 (Python) - 5탄

아래 링크까지 구현이 된 상태에서 진행을 해야한다. 2023.08.02 - [python] - Django로 회원가입/로그인 페이지 만들기 (Python) - 4탄 Django로 회원가입/로그인 페이지 만들기 (Python) - 4탄 파이썬 웹 개발로

forky-develop.tistory.com

 

 

1. views 파일 수정하기

main > views.py

결과가 나타나게 해주는 함수를 수정해야한다.

이 때까지는 엑셀파일을 올려도 결과탭을 들어가보면 빈 화면이었으면, 지금은 결과탭으로 이어지는 루트를 타고 바로 결과가 화면으로 나타나게끔 함수를 바꿔줘야 한다.

우리가 해야할 부분은 세션을 받을 새로운 객체를 생성해준다.

 

 

def result(request):
    if 'user_name' in request.session.keys():
        # 현재 상황은 user_name, user_email 정보가 존재
        # calculate 두개의 정보가 들어있음
        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) # 사용자의 세션 정보가 담겨져 있는 상태에서의 index.html
    else:
        return redirect("main_signin")

 

+)  urls 파일 경로 확인하기

우리가 미리 urls 파일에 결과 탭을 이어놨기 때문에 확인만 하면된다.

 

 

2. views 파일 수정하기

calculate > views.py

불러온 엑셀 파일을 계산할 수 있게 세션 값을 받아오는 코드를 추가해줘야 한다.

아래에 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']) #float 자료형으로 변환
        grade_calculate_dic_to_session[int(key)]['min'] = float(grade_calculate_dic[key]['min']) #float 자료형으로 변환
        grade_calculate_dic_to_session[int(key)]['avg'] = float(grade_calculate_dic[key]['avg']) #float 자료형으로 변환

    request.session['grade_calculate_dic'] = grade_calculate_dic_to_session
    request.session['email_domain_dic'] = email_domain_dic
    
    return redirect("/result")

 

 

3. 결과 페이지 수정하기

 

4. 실행하기

런서버를 해서 로그인을 하고 엑셀파일을 올려 실행결과를 확인해보자

 

728x90