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

파이썬-2일차

by useSword 2024. 1. 26.

오늘은 파이썬에서 아래의 개념들을 배웠다.
1. 라우팅
2. url에서 데이터 가져오기
3. SQLAlchemy 사용으로 database 조작하기
4. [실습]
음원 사이트인 멜론 Top 100 차트에서 가수, 노래 제목, 앨범 커버를 스크래핑해서 카드 형태로 만들어 주세요.

 


1. 라우팅

아래의 코드처럼 /,/music을 설정합니다.

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

@app.route("/")
def home():
    return render_template("motto.html")

@app.route("/music/")
def music():
    return render_template("music.html")

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

 

그 이후 html파일의 이동과 관련된 오브젝트에 아래의 코드처럼 작성하면 됩니다.

# motto.html
<div class="collapse navbar-collapse" id="navbarNav">
  <ul class="navbar-nav">
    <li class="nav-item">
      <a class="nav-link active" aria-current="page" href="{{ url_for('home') }}">Home</a>
    </li>
    <li class="nav-item">
      <a class="nav-link active" aria-current="page" href="{{ url_for('music') }}">Music</a>
    </li>
    <li class="nav-item">
      <a class="nav-link active" aria-current="page" href="#">Album</a>
    </li>
    <li class="nav-item">
      <a class="nav-link active" aria-current="page" href="#">Movie</a>
    </li>
  </ul>
</div>

이 코드는 motto.html이지만 주소는 '/'입니다.

href="{{ url_for('home') 은 Home을 클릭 시 '/'으로 이동시킵니다.
href="{{ url_for('music') }}은 Music을 클릭 시 '/music'으로 이동시킵니다.

2. 데이터 넘겨주기

app.py에서 데이터 넘겨줄 때

@app.route("/")
def home():
    name = "sparta"
    return render_template("motto.html", data=name)
    
    
//넘겨줄 데이터가 여럿일 때    
@app.route("/")
def home():
	a = {
    name = 'sparta',
    gender = 'male'
    }
    return render_template("motto.html", data=a)

 

html파일에서 데이터를 받아올 때

<div class="greeting">
  <h1>Hello, {{ data }}</h1> //둘 이상일 땐 data.name
  <h1 id="current-time"></h1>
</div>



3. Database
Database에는, 크게 두 가지 종류가 있습니다.

1) RDBMS(SQL)
행/열의 생김새가 정해진 Excel에 데이터를 저장하는 것과 유사합니다.
많은 수의 데이터가 적재된 상태에사 중간 부분에 데이터를 더하는 건 어렵지만 정형화 되어있는 만큼 일관성이나 분석에 용이함.

2) No-SQL
딕셔너리 형태로 데이터를 저장해두는 Database.데이터 하나 하나 마다 같은 값들을 가질 필요가 없게됨.
자유로운 형태의 데이터 적재에 유리한 대신 일관성이 부족할 수 있음.

 

SQLAlchemy을 사용해서 데이터를 간단하게 조작하긴 했지만 실습내용이 너무 적다고 생각이 든다.

4. 실습


1. class에 '.'을 붙이는걸 잊지말자
2. ('img')['src']. 이 부분이 특히 많이 헷갈렸다. src에 ''를 잊지말자.
3. 오늘 배운 내용이 잘 기억이 안난다면 아래의 코드를 보자 배운내용이 전부 있다.

   for trs in tr:
        rank = trs.select_one('.rank').text
        artist = trs.select_one('.rank02>a').text
        title = trs.select_one('.rank01>span>a').text
        image = trs.select_one('img')['src']
        melon_data.append({
            'rank':rank,
            'artist':artist,
            'title':title,
            'image':image
            })
    return render_template('index.html',data=melon_data)

append() 함수는 파이썬에서 리스트의 끝에 새로운 요소를 추가하는 메소드이다.

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

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