Spring Boot
[Flask] GET, POST, PUT 및 DELETE 작업을 구현하는 REST API를 만드는 방법
도쿄아재
2023. 2. 9. 01:58
반응형
플라스크를 사용하여 Python의 데이터베이스 연동 GET, POST, PUT 및 DELETE 작업을 구현하는 REST API를 만드는 방법입니다.
from flask import Flask, request
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///test.db'
db = SQLAlchemy(app)
class Data(db.Model):
id = db.Column(db.Integer, primary_key=True)
column1 = db.Column(db.String(80))
column2 = db.Column(db.String(80))
def __init__(self, column1, column2):
self.column1 = column1
self.column2 = column2
db.create_all()
@app.route('/data', methods=['GET', 'POST'])
def data():
if request.method == 'GET':
data = Data.query.all()
return {'data': [{'id': d.id, 'column1': d.column1, 'column2': d.column2} for d in data]}
elif request.method == 'POST':
data = request.get_json()
new_data = Data(column1=data['column1'], column2=data['column2'])
db.session.add(new_data)
db.session.commit()
return {'message': 'Data added'}
@app.route('/data/<id>', methods=['GET', 'PUT', 'DELETE'])
def single_data(id):
data = Data.query.get(id)
if request.method == 'GET':
return {'data': {'id': data.id, 'column1': data.column1, 'column2': data.column2}}
elif request.method == 'PUT':
data_update = request.get_json()
data.column1 = data_update['column1']
data.column2 = data_update['column2']
db.session.commit()
return {'message': 'Data updated'}
elif request.method == 'DELETE':
db.session.delete(data)
db.session.commit()
return {'message': 'Data deleted'}
if __name__ == '__main__':
app.run(debug=True)
SQLite 데이터베이스에 대한 REST API 끝점을 구현하는 Flask 응용 프로그램을 만듭니다. 데이터 모델은 Flask-SQLAlchemy를 사용하여 정의됩니다. LAchemy 및 데이터베이스 테이블은 db.create_all()을 사용하여 생성됩니다.
반응형