TIL - python - flask

연주·2022년 11월 18일
0

KDT-TIL

목록 보기
35/36

📍 Python flask를 이용해 DB연결

Flask

: 마이크로 웹 프레임워크
: 프레임워크로 간결하게 유지하고 확장할 수 있도록 만들었다.

📋 flask를 사용하기 위해, 파이썬 가상환경을 사용한다.

: 패키지 관리를 위해서 각각의 프로젝트마다 가상환경을 설정해서 사용해야한다.


📌 가상환경 생성 및 flask 설치

  1. 프로젝트 폴더를 만들고, 가상환경 생성한다.
    python -m venv 가상환경이름

  2. cd 가상환경이름/scripts

  3. .\activate 로 가상환경 시작

tip. deactivate 가상환경 종료

  1. 플라스크 설치
    pip install flask

  2. Scripts/app.py 생성

from flask import Flask
app = Flask(__name__)
@app.route('/')
def home():
    return 'Hello, World!'
if __name__ == '__main__':
    app.run(debug=True)
  1. python app.py로 실행

5000번 포트로 웹사이트 연결

  1. route(URL에 웹페이지 연결)
@app.route('/home')
def sub():
    return 'hello, my home'


📌 DB 연결하기

  • 다양한 sql모듈을 사용할 수있다.
    <pymysql 사용>
  1. pymysql 설치

pip install pyMySQL

  1. DB.py 파일 생성 연결 하려고 했는데, 안되서 일단 app.py에 코드를 썼다

app.py

def db_connection():
    db = pymysql.connect(
        host="localhost",
        port=3307,
        user="root",
        passwd="1234",
        db="aitrading_db",
        charset="utf8"
    )
    cursor = db.cursor(pymysql.cursors.DictCursor)
    # 커서 가져오기
    # cursor  데이터베이스와 상호 작용하는 데 사용하는 개체
    # dict으로 결과를 반환하겠다
    sql = 'SELECT * FROM `aitrading_db`.`companylist` LIMIT 50;'
    # SQL query 실행
    cursor.execute(sql)
    # SQL query 실행 결과를 가져온다.
    result = cursor.fetchall()
    db.close()
# excute()와 fetch()를 이용해 데이터 핸들링이 가능하다.
# excute() 를 이용해 SQL을 실행하고,
# 결과는 fetchall()을 이용해서 받아온다.
    return result


@app.route('/company')
def company():
    data = db_connection()
    return json.dumps(data, indent="\t", ensure_ascii=False)

일단 app.py에 데이터 불러오기 했음

cursor.execute()을 이용해서 SQL을 실행하고 그 결과는 fetchall()을 이용해서 받아옵니다.

fetchall() : 모든 데이터를 한 번에 가져올 때 사용
fetchone() : 한 번 호출에 하나의 행만 가져올 때 사용
fetchmany(n) : n개만큼의 데이터를 가져올 때 사용


💬 지난 번에 django를 이용해 DB연결을 하려고 했는데,
지금 갖고 있는 DB의 테이블 수가 몇 만개 여서 모델링 작업을 하는데 너무 오래 걸려서 다른 방법을 찾아보고, flask를 사용해 보기로 했다.

DB 연결이 지난번 node express 쓸 때랑 비슷해서 편하긴 하다.
일단, 리액트랑 연동해봐야겠다.

profile
성장중인 개발자🫰

0개의 댓글