반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 파이썬
- 자바기초
- 판다스공부
- serverless
- RESTful API
- 자바공부
- 자바스크립트
- 자바
- 데이터베이스
- 스트림릿
- java
- 안드로이드 스튜디오
- Android
- 판다스
- 자바스크립트 공부
- MySQL
- Streamlit기본
- 자바프로그래밍
- Pandas
- db
- 스트림릿 기본
- streamlit
- 웹대시보드 기초
- 안드로이드 앱 개발
- JavaScript
- Streamlit기초
- Matplotlib 기초
- 웹대시보드 제작
- 파이썬공부
- 자바초보
Archives
- Today
- Total
ruriruriya
[RESTful API] Python MySQL- Connector를 활용한 delete 방법 본문
반응형
Python MySQL Connector를 활용하여
SQL문으로 작성하여 delete 쿼리문을 만들고 실행하고 반영해보자.
1. MySQL에서 쿼리문 확인
MySQL에서 delete문 쿼리를 작성하여 테스트한다.
아래는 기존에 존재하던 값을 삭제하는 쿼리문이다.
delete from recipe
where id = 3;
select *
from recipe;
아래 테이블에서 3번이 없어진 것을 확인할 수 있다.
2.MySQL 접속 함수 만들기
mysql.connector 패키지 import 하여 접속함수를 만드는 것은 지난 포스팅의 2번을 확인하자.
https://ruriruriya.tistory.com/98
3. API 경로와 Resource 클래스 연결
path(경로)에 숫자나 문자가 바뀌면서 처리되는 경우에는 해당 변수를, 파라미터에 꼭 써줘야 한다.(recipe_id)
이 변수는, 경로와 API 코드가 있는 파이썬 파일의 add_resource 함수에서 사용한 변수이다.
from flask import Flask
from flask_restful import Api
from resources.recipe import RecipeListResource, RecipeResource
app = Flask(__name__)
api = Api(app)
# 경로(path)와 리소스(API 코드)를 연결한다.
api.add_resource(RecipeResource,'/recipes/<int:recipe_id>')
if __name__=='__main__':
app.run()
4. API 클래스에서 mysql 접속 및 쿼리문 만들기
flask 라이브러리와 mysql.connector 패키지 import 후
리소스 클래스를 오버라이딩 하여 delete함수를 만든다.
delete는 클라이언트에게 json 데이터를 받지 않는다.
이미 받은 recipe_id로 해당 레시피를 삭제하는 쿼리문을 포함한 코드를 만든다.
from flask import request
from flask_restful import Resource
from mysql_connection import get_connection
from mysql.connector import Error
class RecipeResource(Resource) :
def delete(self, recipe_id) :
# 1. 클라이언트로부터 이미, recipe_id 받아왔음.
# 2. 테이블에서 해당 레시피를 삭제한다.
try :
connection = get_connection()
# SQL 쿼리문 삽입
query = '''delete from recipe
where id = %s;'''
#튜플로 recipe_id 받기
record =(recipe_id,)
cursor = connection.cursor()
cursor.execute(query, record)
connection.commit()
cursor.close()
connection.close()
except Error as e :
print(e)
cursor.close()
connection.close()
return{'result':'fail','error': str(e)}, 500
return{'result':'success'}, 200
5. postman으로 테스트
코드 작성 후 vscode 터미널에서
flask run 명령어를 실행한다.
포스트맨에서 삭제 API 생성 후
요청을 DELETE / 해당 로컬 경로의 recipe_id 값을 넣어주고 Send 한다.
그렇게 성공 메세지가 나온다.
성공 메세지가 나오면 MySQL workbench로 가서 Select 문으로
4번이 삭제가 되었는지 확인 할 수 있다.
select *
from recipe;
반응형
'Python Flask' 카테고리의 다른 글
[RESTful API]Python MySQL- Connector 라이브러리 %s 매칭 데이터가 1개일 경우 튜플 처리 방법(버그 방지) (1) | 2023.12.07 |
---|---|
[RESTful API]Python MySQL- 경로에 숫자가 들어오는데 숫자가 변하는 경우 변수 처리 (1) | 2023.12.07 |
[RESTful API] Python MySQL- Connector를 활용한 update 방법 (1) | 2023.12.07 |
[RESTful API] Python MySQL- Connector를 활용한 select 방법 (1) | 2023.12.07 |
[RESTful API] Python MySQL- Connector를 활용한 insert 방법 (1) | 2023.12.06 |