파일 export 기능 추가

4444 단어 try/excepttry/except

1. CSV 파일 다운로드

CSV를 다운받기 위해서는 send_file 함수를 불러와야하고, 기존에 만들었던 save.py 파일안에 있는 save_to_file 함수도 불러와야한다. 일단 report.html 안에서 수정해야할 게 있다. 바로 h3 태그 밑에 링크태그를 추가하는것이다.

<h3>
    You've got results for {{searchingword}}. number of the result: {{searchingrResult}}
</h3>
<a href="/export?word={{searchingword}}">Export to CSV</a> 
<!-- 링크를 눌렀을때 /export 페이지로 가게 되어있음. 이제 superscrap.py에서 app.route('/export')만들어주면 됨. -->

그럼 export 페이지를 만들어보자.

from flask import send_file
from save import save_to_file

@app.route('/export')
def export():
    try:
        word = request.args.get('word').lower()
        if not word:
            raise Exception()
        jobs = db.get(word)
        if not jobs:
            raise Exception()
        save_to_file(jobs) # report 함수를 통해 db에 저장되어있던 dict 형태의 데이터를 save_to_file에 pass 한다.
        return send_file("jobs.csv", as_attachment=True) # as_attachment=True 를 추가하면 "" 안에 이름 적은대로 저장됨.
    except:
        return redirect("/")
# word 없으면 홈으로 다시 보냄. 그리고 word, jobs 가 없으면 exception() 함수 작동. 즉, except: 로 바로 보낸다는 뜻.     
# save_to_file(save.py에 있는 함수) 이랑 send_file(파일을 다운받는 함수) import 함

그럼 아래와 같이 결과가 나온다

사실 여기서 끝난게 아니다. 디자인이 다 발라먹은 생선 마냥 앙상하다. 그림도 추가하고 글자위치도 옮겨서 완성도를 더 높여야 한다. 근데 css 강의를 듣고 난 다음에 할 생각이다.

좋은 웹페이지 즐겨찾기