개발일지

사전 필수코스 4일차

오늘도개발 2024. 1. 28. 09:16

1. ChatGPT 웹개발 4주차 수강하기

 

 - Flask 에서 sqlite 사용하기 학습

 

 - db를 사용하여 데이터 저장 및 불러오기 

 

 - 추천 음악을 DB에 저장하고 불러오는 사이트 제작 과제 수행

 

 

2. 새롭게 알게된 지식

 

 - SQLAlchemy 라이브러리 : 데이터베이스와의 상호 작용을 관리하고 웹 애플리케이션의 데이터 모델을 정의하는 api

  • 터미널에서 pip install Flask SQLAlchemy 명령을 통하여 설치
  • class 를 생성하여 db와 연결한다
class Song(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String, nullable=False)
    artist = db.Column(db.String, nullable=False)
    title = db.Column(db.String, nullable=False)
    image_url = db.Column(db.String, nullable=False)

 

  • 다음과 같이 테이블을 생성한다

 

with app.app_context():
    db.create_all()

 

  • 데이터를 불러올 때에는 다음과 같이 한다.

Song.query.all()

 

  • 조건이 필요할 때에는 filter를 사용하여 해당하는 데이터만 불러올 수 있다.
filtered_list = Song.query.filter_by(username=username).all()

 

  • 웹에서 데이터를 가져와서 db에 저장하는 방법은 다음과 같다( create는 post 방식으로 해야하지만 강의 내용에 따라 get방식 사용)
@app.route("/music/create/")
def music_create():
    user_name_re = request.args.get('username')
    title_re = request.args.get('title')
    artist_re = request.args.et('artist')
    img_url_re = request.args.get('img_url')

    song = Song(username=user_name_re, title=title_re,
                artist=artist_re, image_url=img_url_re)
    db.session.add(song)
    db.session.commit()
    return redirect(url_for('render_music_filter', username=user_name_re))

 

 

 - with 키워드

  • with 키워드는 Python에서 "컨텍스트 관리자"를 사용할 때 유용한 구문
  • 컨텍스트 관리자는 특정 작업을 시작하기 전에 설정을 수행하고, 작업을 완료한 후에 정리(clean-up)를 하는 패턴을 구현할 때 사용한다
  • ex> 파일을 열고 닫는 코드
with open("example.txt", "r") as file:
    data = file.read()
    #파일 데이터 관련 코드
 
#파일이 닫힘(with)
  • 데이터베이스 연결, 잠금 관리, 네트워크 연결 등 다양한 상황에서 유용하게 사용

'개발일지' 카테고리의 다른 글

사전 미니프로젝트  (0) 2024.01.31
사전 필수코스 5일차  (0) 2024.01.29
사전 필수코스 3일차  (0) 2024.01.27
사전 필수코스 2일차  (0) 2024.01.26
사전 필수코스 1일차  (0) 2024.01.25