TIL

1주차 Day2. Fetch, Python, Flask, template

ekdud 2024. 6. 25. 20:01

Fetch

fetch(" URL ")   // URL로 웹 통신 요청을 보낸다. URL만 쓴 경우 기본적으로 GET.

.then()  // 응답을 받고나서 취할 동작

.then(res => res.json()) // 통신 요청을 받은 데이터는 res라는 이름으로 JSON화 한다.

.then(data ⇒ {   }) // JSON 형태로 바뀐 데이터를 data라는 이름으로 사용.

 

let rows = data["RealtimeCityAir"]['row']
  rows.forEach(row => {
    let gu_name = row['MSRSTE_NM']
    let gu_mise = row['IDEX_MVL']
    console.log(gu_name, gu_mise)
  });     //forEach문(반복)을 사용해 구 이름과 미세먼지 수치 데이터를 뽑아 console에서 확인

 

#데일리모토 날씨정보 Fetch 실습

 

 


Python 기초문법

 

- 조건문

if 조건1:
    # 조건1이 참일 때 실행할 코드
elif 조건2:
    # 조건1이 거짓이고 조건2가 참일 때 실행할 코드
elif 조건3:
    # 조건1과 조건2가 모두 거짓이고 조건3이 참일 때 실행할 코드
else:
    # 위의 모든 조건이 거짓일 때 실행할 코드

 

- 반복문

fruits = ['사과','배','감','귤'] # fruits라는 과일 값이 담긴 리스트

# fruits라는 리스트의 요소를 돌아가면서 반복하기
# 그 요소 중 하나를 fruit라고 하면 fruit는 순서대로 사과/배/감/귤이 된다.
for fruit in fruits:
	print(fruit)

# 사과, 배, 감, 귤 하나씩 출력된다.

 

- 함수

: def 함수명(parameter):  형식으로 쓴다.

 

 

파이썬 가상 환경 생성하기

가상 환경(virtual environment):  같은 시스템에서 실행되는 다른 파이썬 응용 프로그램들의 동작에 영향을 주지 않기 위해, 파이썬 배포 패키지들을 설치하거나 업그레이드하는 것을 가능하게 하는 격리된 실행 환경. 

1) 명령 팔레트 실행하기 ctrl + Shift + p
2) 명령 팔레트에서 env 검색, Python : Create Environment 클릭
3) Venu 클릭
4) 활성화 되었는지 확인.

 

• 터미널이 열린 상태에서 오른쪽의 + 모양 버튼 클릭 (열리지 않았다면 상단 도구 터미널 → 새 터미널 클릭)

• 클릭했을 때, 생성한 (.venv) 폴더가 터미널의 새 줄 앞에 적혀있다면 가상 환경 활성화 성공!

• 터미널에서 python app.py라고 적고 Enter.  Running on all addresses ... Press CRTL+C to quit 과 같은 문구가 뜨면 잘 작동한 것.

 

Flask

  • Flask 프레임워크: 서버를 구동시켜주는 편한 코드 모음.
  • 웹 서버를 구동하는데 필요한 복잡한 코드들을 쉽게 가져다 쓸 수 있다.

- 기본 구조

from flask import Flask
app = Flask(__name__)

@app.route('/')
def home():
    return 'This is Home!'

if __name__ == '__main__':  
    app.run(debug=True)

 

 

- templates폴더 → HTML 파일을 담아둔다. 다른 python파일에서 불러와 사용.

*render_template : HTML파일을 불러오는 내장함수.

*여러개의 데이터를 넘겨주고 싶은 경우, context 딕셔너리에 원하는 데이터를 넣어 사용.

 

from flask import Flask, render_template
app = Flask(__name__)

## URL 별로 함수명이 같거나,
## route('/') 등의 주소가 같으면 안됩니다.

@app.route('/')
def home():
	변수명1 = 'OOO'
    변수명2 = [ 내용 ]
	context = {
		"HTML에서 사용할 이름": 변수명1,
		"HTML에서 사용할 이름": 변수명2,
	}
   return render_template('index.html', data=context)

@app.route('/mypage')
def mypage():
	return 'This is My page!'

if __name__ == "__main__":
    app.run(debug=True)

 

 

- HTML에서 반복문 사용하기

<body>
    <h1>안녕, {{ data.name }}</h1>
    <h2>로또 번호: {{ data.lotto }}</h2>
    <ol>
    {% for number in data.lotto %}         => ffor + enter(또는 tab) 으로 자동완성
            {{ number }}
    {% endfor %}
    </ol>

</body>

 

* ol 태그 사용 시 숫자나 알파벳 같은 마커로 순서 표시.