본문 바로가기
내일배움캠프/python

파이썬 TIL 1일차

by useSword 2024. 1. 24.

조건문 

 if 

age = 25 # age라는 나이 값을 담은 변수 만들기

if age > 20: # 조건 : age가 20보다 크다면 -> 지금은 True!
	print("성인입니다") # 조건이 참일 때 작동하는 코드
else: # else 조건이 False라면 아래 내용을 실행하세요~ 라는 뜻
	print("청소년입니다") # 조건이 거짓일 때 작동하는 코드

 

if ( 조건이 세 개 이상)

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

 

 

반복문

 

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

for fruit in fruits:
	print(fruit)

>>>사과, 배, 감, 귤

 

 

패키지 사용해보기

 

PIP로 requests 패키지 설치하기

pip install requests

 

requests 써보기

 

import requests # requests 라이브러리 설치 필요

r = requests.get('http://spartacodingclub.shop/sparta_api/seoulair')
rjson = r.json()

print(rjson)

 

 

웹 스크래핑(크롤링)

BeautifulSoup 라이브러리를 사용해서 웹 스크래핑을 진행할 예정입니다.

# 멜론뮤직 스크래핑
from bs4 import BeautifulSoup
import requests


url = "https://www.melon.com/chart/"
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'}
data = requests.get(url, headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')

trs = soup.select('.lst50')
for tr in trs:
    rank = tr.select_one('.rank').text
    title = tr.select_one('.rank01 > span > a').text
    artist = tr.select_one('.rank02 > a').text
    image = tr.select_one('img')['src']
    print(rank, artist, "-", title)

 

 

과제

 

//app.py

from flask import Flask, render_template, request
import random
import requests

app = Flask(__name__)


@app.route("/answer")
def answer():

    if request.args.get('query'):
        query = request.args.get('query')
    else:
        query = '20230601'    
    URL = f"http://kobis.or.kr/kobisopenapi/webservice/rest/boxoffice/searchWeeklyBoxOfficeList.json?key=f5eef3421c602c6cb7ea224104795888&targetDt={query}"
    res = requests.get(URL)
    rjson = res.json()
    movie_list = rjson.get("boxOfficeResult").get("weeklyBoxOfficeList")
    return render_template("answer.html", data=movie_list)

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


//answer.html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-9ndCyUaIbzAi2FUVXJi0CjmCapSmO7SnpJef0486qhLnuZ2cdeRhO02iuK6FUUVM" crossorigin="anonymous">
</head>
<body>
  <h1>박스오피스 검색</h1>
  <p>20230501 형식으로 검색하세요.</p>
  <form action="{{ url_for('answer') }}">
    <input type="text" name="query">
    <button type="submit">검색</button>
  </form>

  <table class="table">
    <thead>
      <tr>
        <th scope="col">랭킹</th>
        <th scope="col">영화명</th>
        <th scope="col">영화개봉일</th>
        <th scope="col">누적관객수</th>
      </tr>
    </thead>
    <tbody>
    {% for answer in data %}
        <tr>
            <th scope="row">{{answer.rank}}</th>
            <td>{{answer.movieNm}} </td>
            <td>{{answer.openDt}}</td>
            <td>{{answer.audiAcc}}</td>
        </tr>
    {% endfor %}
    </tbody>
  </table>


  <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-geWF76RCwLtnZ8qwWowPQNguL3RmwHVBC9FhGdlKrxdiJJigb/j/68SIy3Te4Bkz" crossorigin="anonymous"></script>
</body>
</html>

 

 

 

app.py에 있는 그 코드가 html파일을 지정한다.

return render_template("answer.html", data=movie_list)

위의 코드를 통해 html을 배치할 수 있다는 점을 잊지 말아야한다.

 

'내일배움캠프 > python' 카테고리의 다른 글

중요 개념  (0) 2024.02.24
파이썬 문법 심화과정  (0) 2024.02.22
파이썬 문법  (1) 2024.02.20
TIL(데이터를 Flask로 받기,배포하기,listplz 사이드메뉴)  (1) 2024.01.30
파이썬-2일차  (1) 2024.01.26