오늘 배운것
- 구글링하는 방법을 좀 배워야겠다...
진짜 오늘 하루종일 오류나고 생각나는대로 안되고 해서 내가 안되는 부분에 대해 구글링을 열심히 했다.
근데 생각보다 내가 원하는 데이터를 찾기가 너무 어려웠다.
예를 들어 지금 배운게 json으로 크롤링을해서 html파일에 바로 get 방식으로 구현하는걸 배웠는데
크롤링하고싶은 파일은 xml로 되어 있어서 xml로 ajax를 통해서 get방식 가져오려고 두시간? 을 검색을 했는데... 죄다 도대체 뭔말인지 모르겠어서 그냥 포기하고 좀 아쉬운 json파일을 사용해서 크롤링했다.
이것도 구글링 잘하는 사람들은 금방 찾을텐데...ㅜ,ㅜ 나중에 또 따로 찾아봐야겠다.
- indexof()
크롤링 해온 데이터중에 2022년 이후 축제만 보여지게 하려 했으나 그것보다 더 쉽게 이미 끝난 축제는 링크가 없는 버튼을 가져다가 if else문으로 다르게 temp_html을 어펜드 하겠다고 계획했다. 이리저리 구글링을 하고 해서 해당 단어가 포함된 데이터를 가져오는 indexof라는 기능을 알게되었다. 이미 정의되어있는 데이터를 가지고 하는 작업이다.
let rows = response["response"]["body"]["items"];
for (let i = 0; i < rows.length; i++) {
let name = rows[i]['fstvlNm'];
let sdate = rows[i]['fstvlStartDate'];
let edate = rows[i]['fstvlEndDate'];
let address = rows[i]['rdnmadr'];
// let fee = rows[i][''];
let url = rows[i]['homepageUrl'];
let temp_html =``
if (sdate.indexOf('2022')){
temp_html =`<div class="card mb-3" max-width: 540px;">
<div class="row g-0">
<div class="col-md-8">
<div class="card-body">
<p class="card-text"><span class="badge bg-dark">이름</span>${name}</p>
<p class="card-text"><span class="badge bg-dark">기간</span>${sdate}~${edate}</p>
<p class="card-text"><span class="badge bg-dark">장소</span>${address}</p>
<button type="button" class="btn btn-secondary">이미 종료된 축제입니다!</button>
</div>
</div>
</div>
</div>`
}else{
temp_html =`<div class="card mb-3" max-width: 540px;">
<div class="row g-0">
<div class="col-md-8">
<div class="card-body">
<p class="card-text"><span class="badge bg-dark">이름</span>${name}</p>
<p class="card-text"><span class="badge bg-dark">기간</span>${sdate}~${edate}</p>
<p class="card-text"><span class="badge bg-dark">장소</span>${address}</p>
<a href="${url}" target="_blank"><button type="button" class="btn btn-primary">축제에 대해 더 알아보기!</button></a>
</div>
</div>
</div>
</div>`
}
if (sdate.indexOf('2022'))
sdate라는 값이 2022의 문자열 ('')을 포함하지 않으면 이미종료된 축제입니다! 버튼을 출력
>>>>>근데 여기서 문제. 그냥 sdate.indexof() 라고하면 뒤에 = -1을 생략하고 있다.
-1의값은 내가 찾는 그 특정 단어나 문자열이 포함되어 있지 않다는것을 의미한다. 즉
sdate.indexof('a') 는 sdate가 a를 포함하지 않는다면!!!!! 이라는 뜻이므로 뒤에 temp_html을 이미종료된 축제에대한 temp_html로 설정했다. (사실 해보고 어????????왜 반대야! 하고 바꾼후에 찾음 8-8;;)
- jinja2
Flask는 템플릿엔진으로 Jinja2를 사용한다. 물론 다른 무료 템플릿엔진을 사용할 수 있지만, Flask를 구동하기 위해서는 Jinja2를 반드시 설치해야 한다. Jinja2가 필요한 이유는 Flask의 풍부한 기능 확장을 위해서이다.
-https://flask-docs-kr.readthedocs.io/ko/latest/templating.html
수업을 듣긴했는데 진짜 한페이지 지나갈 때마다 에러의 연속이였어서 너무 화가나서 파일 삭제했다... 새로운 기능 배우는거라 재밌었는데... 에러때문에 다시 첨부터 들어야 할것같다.! 내일은 지금까지 해둔 미니플젝 합쳐보고 개략적으로 짤것같다! 얍!
'항해99 7기' 카테고리의 다른 글
DOM, API , REDUX, 서버리스 (+WIL) (0) | 2022.05.29 |
---|---|
React에서 ES5/ES6란?(WIL쪼끔) (0) | 2022.05.22 |
React 입문 주차 S.A. (0) | 2022.05.20 |
스파르타 코딩 플러스 2주차 3강 (0) | 2022.05.11 |
항해 99 코딩 부트 캠프 DAY 01.TIL (0) | 2022.05.09 |
댓글