: 마이크로 웹 프레임워크
: 프레임워크로 간결하게 유지하고 확장할 수 있도록 만들었다.
: 패키지 관리를 위해서 각각의 프로젝트마다 가상환경을 설정해서 사용해야한다.
프로젝트 폴더를 만들고, 가상환경 생성한다.
python -m venv 가상환경이름
cd 가상환경이름/scripts
.\activate
로 가상환경 시작
tip. deactivate
가상환경 종료
플라스크 설치
pip install flask
Scripts/app.py 생성
from flask import Flask
app = Flask(__name__)
@app.route('/')
def home():
return 'Hello, World!'
if __name__ == '__main__':
app.run(debug=True)
5000번 포트로 웹사이트 연결
@app.route('/home')
def sub():
return 'hello, my home'
pip install pyMySQL
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 쓸 때랑 비슷해서 편하긴 하다.
일단, 리액트랑 연동해봐야겠다.