본문 바로가기

Spring Boot

[Flask] GET, POST, PUT 및 DELETE 작업을 구현하는 REST API를 만드는 방법

반응형

플라스크를 사용하여 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()을 사용하여 생성됩니다.

반응형