Sparta/스파르타코딩 웹개발 종합반

웹개발 종합반 프로젝트 - 01 헤더

또롱또 2022. 3. 2. 07:32
728x90

프로젝터의 헤더에는 날짜, 명언, 인사말이 들어간다.

 

처음에 세운 목표는 아래와 같다.

- 틀만들기
- 날짜: js Date -> setinterval 함수로 매초마다 실행시켜서 시간 변화주기
- 로그인인사: 로그인 기능을 만든 후 다시 생각하기.
- 짧은명언: api가져와서 db 넣고 랜덤뽑아주기
- 틀: 명언나오고 아래에 (author)
- 파이썬 flask로 서버 post -> quote_give, author_give

 

만들다 보니, JQuery를 쓰기 때문에 SetInterval() 을 사용하지 않아도 되는걸 알았다.

 - 연/월/일 얻어오는 함수

        // When Load the Window
        $(document).ready(function () {
            getDate();
        });

        // Date for Header
        function getDate() {
            const now = new Date();
            const year = now.getFullYear();
            const month = now.getMonth() + 1;
            const date = now.getDate();

            const html_temp = `<div id="date">${year}/${month}/${date}</div>`
            $("#date").append(html_temp)
        }

명언 API를 받아와서 DB에 넣자 라고 별 생각없이 기계처럼 생각했었지만, 

만들다보니 DB에 굳이 안넣고, 페이지 restart할때마다 랜덤으로 주는게 나을거 같았다.

 - 명언 api 얻어오기

중간에 author가 null인 경우가 있어서, 그럴때는 Unknown 이라는 이름을 주었다.

		// Quote API
        const settings = {
            "async": true,
            "crossDomain": true,
            "url": "https://type.fit/api/quotes",
            "method": "GET"
        }
        $.ajax(settings).done(function (response) {
            const data = JSON.parse(response);
            const todaysQuote = data[Math.floor(Math.random() * data.length)];

            let html_temp = ``
            if (todaysQuote['author'] != null) {
                html_temp = `<h5>${todaysQuote['text']}</h5>
                                <span>- ${todaysQuote['author']}</span>`
            } else {
                html_temp = `<h5>${todaysQuote['text']}</h5>
                                <span>- Unknown</span>`
            }

            $('#quote').append(html_temp)
        });

그 외에 새로 배운게 있다면 기본 css 레이아웃이다.

Flex와 Div로도 충분히 레이아웃이 가능하다.

border 혹은 background-color, f12의 inspection으로 계속 div 등등의 범위를 보면서 틀을 잡으니까 편하다.

 

궁금한점: 이러한 API를 JQuery로 어떻게 가져오는가? 

- 결국 해결 못하고, 다른 API를 사용하게 됬다..

이 API 출처 -  advice slip api

{
	slip: {
		id: 39,
		advice: "Never run a marathon in Crocs."
			}
}

 

현재 진행 상황

728x90