

- request를 추가로 임포트하고, serach 함수에 keyword= 값을 받는 request.args.get을 사용한다.
- 리턴에서 keyword=keyword로 html에 keyword의 값을 전달한다.
- 이후 search html에 {{}}를 사용하여 keyword를 전달하면 이렇게 메인에 내가 입력한 키워드 값이 뜬다.

- 먼저 임포트로 만들어둔 indeed와 wwr를 불러온다.
- 기존 방식과 동일하게 indeed, wwr변수를 만들어서 실행함수에 키워드를 전달한다.
- 리스트 형식의 indeed와 wwr를 합쳐 jobs 변수에 넣는다.
- 이후 search.html에 jobs의 값을 전달한다.

- html의 형식을 수정해준다.
- {%%}: 템플릿 문법으로 {% endfor %}로 꼭 종료해야 함
- {{}}: 변수의 값
- 이후 확인하면 우측처럼 못생기게 출력된다.

- head에 pico에서 제공한 link를 넣어준다.
- 이후 pico에서 제공한 main을 사용하면 이렇게 힘쓰지 않고 예쁜 화면을 만나기 쌉가능하다.

- search 페이지 또한 똑같다.
- head에 link를 넣는다.
- main으로 감싸서 중앙 정렬 시킨다.
- pico에서 제공한 table을 따라서 안에 내용들을 넣어준다.
- 구분을 위해 role="grid" 또한 테이블에 추가해준다.
- 한결 보기 좋은 테이블 완성!

- db={}를 생성하여 db를 담아둘 변수를 만든다.
- if문을 활용하여 키워드가 db에 있다면 db를 실행하고 없다면 기존 jobs를 실행하고 db에 저장시킨다.
- 이후 실행해서 확인해보면 처음 검색 때만 로딩이 걸리고, 이후 같은 걸 검색하면 속도가 현저히 줄어드는 걸 확인할 수 있다.
❗️하지만 해당 방법은 서버가 가동 중일 때만 가능하고, 서버를 중지하고 다시 시작하면 캐시가 사라지기 때문에... 다시 서버를 실행하면 똑같이 로딩이 걸린다...🥺

- import에 redirect를 추가한다.
- if 문을 활용하여 search에 검색어를 입력하지 않거나, search로 url를 변경해서 들어갈 경우 홈("/")으로 리턴시킨다.

- app.route로 export 페이지를 만든다.
- search와 같이 keyword를 받을 수 있게 request를 사용한다.
- search와 같이 keyword가 없거나 직접 검색으로 들어올 경우 홈으로 리턴시킨다.
- if문을 추가하여 db가 없다면 search로 넘어가게 지정한다. (키워드로 search를 이용)
- 만들어둔 save_to_file를 import 시킨다.
- save_to_file에 (파일 이름, 리스트)를 보낸다. 파일이름은 키워드로 설정하고, 리스트는 db에 있는 걸 반환한다.
- 이후 save_to_file에 있는 keyword.csv를 export 하기 위해 send_file를 임포트한다.
- return으로 send_file를 추가하고 기존에 정해둔 파일 명과, as_attachment=True로 웹 다운로드를 실행시킨다.

- search.html에서 export 링크를 만들고, target="_blank"로 새창에서 추가해준다.

- 이후 실행해서 Export file을 눌러보면 이렇게 파일이 다운이 가능하다!

이렇게 하면 파이썬 기초 웹스크리퍼가 끝이 난다!