나는..프론트앤드 개발자...인데...
걍 흥미위주로 해봄..
DB에서 데이터 가져와서
요청오면 json형식으로 던져주는 API를 만들어보자.
일단 파이참 깔아서 새프로젝트로 플라스크를 지정하자
참고로 난 파이썬3.9버전 사용함!
그리고
from flask import Flask, jsonify
import pymysql
from flask_cors import CORS
flask: 플라스크이다.
jsonify: db에서 쿼리한거 json형식으로 보낼꺼니까...
pymysql: 마리아DB쓰는 중임.
flask_cors: localhost로 테스트하는데 CORS 때문에 테스트를 못하길래..
암튼 이렇게 깔아주십쇼
일단
conn = pymysql.connect(db='DB이다',user='유우저이름',password='비밀번호486',host='연결할 url',charset='utf8')
cur = conn.cursor(pymysql.cursors.DictCursor)
sql = "SELECT 뭐라뭐라 DB에서 필요한거 선택 ㄱㄱ"
cur.execute(sql)
exam_list = cur.fetchall()
거의 구글이 알려주는거 복.붙. 한거 맞습니다.
cursor() 이렇게 안쓰고 안에 pymysql.cursors.DictCursor 써준 이유는
json으로 변환 했을 때 column 이름 같이 가져와줌.
예를 들어서
이런 차이...
프론트에서 JSON.parse 해서 받을 때 더 예쁘게 나온다.
암튼 그담에
app = Flask(__name__)
cors = CORS(app, resources={r'*': {"origins": "*"}})
app.config['JSON_AS_ASCII'] = False
cors 저거는 로컬에서 테스트할 때 app.py 실행하고
npx http-server 해서 js 로 열어보니까 CORS오류나서 세팅해준것.
app.config['JSON_AS_ASCII'] = False 이것은 jsonify(exam_list) 하니까 한글을 못 읽어서 해줌.
@app.route('/get',methods=['GET'])
def get():
return jsonify(exam_list)
if __name__ == '__main__':
app.run()
http://127.0.0.1:5000/get 했을 때 json형식으로 변환된 exam_list 를 볼 수 있다.
from flask import Flask, jsonify
import pymysql
from flask_cors import CORS
conn = pymysql.connect(연결설정)
sql = "SELECT sql설정"
cur.execute(sql)
exam_list = cur.fetchall()
app = Flask(__name__)
cors = CORS(app, resources={r'*': {"origins": "*"}})
app.config['JSON_AS_ASCII'] = False
@app.route('/get',methods=['GET'])
def get():
return jsonify(exam_list)
if __name__ == '__main__':
app.run()
담에는 이거 JS에서 가져오는 것 포스팅 해야지.