-
[Python] Flask-MySQL 데이터 삽입(INSERT)하기Backend/Flask 2021. 5. 6. 23:19728x90
# app.py import os from flask import Flask, jsonify, request from flask_mysqldb import MySQL app = Flask(__name__) mysql = MySQL(app) @app.route('/', methods=['GET', 'POST']) def visit(): if request.method == 'POST': name = request.json['visitor_name'] # mysql 접속 후 cursor 생성하기 cur = mysql.connection.cursor() # DB 데이터 삽입하기 cur.execute("INSERT INTO visits (visitor_name) VALUES(%s)", [name]) # DB에 수정사항 반영하기 mysql.connection.commit() # mysql cursor 종료하기 cur.close() return
위와 같이 app.py에서 mysql cursor를 생성한 변수 cur로 데이터를 삽입(insert) 할 수 있는 방법 2가지:
1. 직접 데이터 입력
cur.execute("INSERT INTO visits (visitor_name) VALUES ('Anne')")
해당 명령어를 실행해보면 Anne이라는 이름으로 데이터가 삽입되는 것을 확인할 수 있습니다.
2. 변수명으로 데이터입력
# MySQL DB 데이터 삽입 cur.execute("INSERT INTO visits (visitor_name) VALUES(%s)", (name))
visits라는 table에 visitor_name이라는 필드에 값을 넣는데, %s로 스트링 처리를 해주고, 뒤에 파라미터로 변수명을 입력합니다.
그러면 성공!이 아닌 다음과 같은 오류를 만나게 됩니다:
MySQLdb._exceptions.ProgrammingError: not all arguments converted during bytes formatting
따라서 해당 오류를 아래 사이트들을 참고하여 해결할 수 있었습니다.
https://www.edureka.co/community/19715/programmingerror-arguments-converted-string-formatting
cur.execute("INSERT INTO visits (visitor_name) VALUES(%s)", [name])
소괄호() 대신에 대괄호[]를 사용하면 됩니다 !
-이상 오늘의 삽질일기 끝!
여기저기 삽질도 해보고
날려도 먹으면서
배우는 게
결국 남는거다
- Z.Sabziller
'Backend > Flask' 카테고리의 다른 글
[Python] Flask 서버 docker 컨테이너로 띄웠을 때 Page 에러 (0) 2021.05.26 [Python] Flask REST API 서버 만들기 (feat. MySQL, Vue.js 연동하기) (2) 2021.05.09 [Python] Flask CORS 오류 해결하기 (0) 2021.05.07