728x90


CRUD 애플리케이션(CRUD Application)은 Create, Read, Update, Delete의 기본적인 데이터 조작 기능을 제공하는 애플리케이션을 말한다. Python과 Flask 웹 프레임워크를 사용하여 간단한 CRUD 애플리케이션을 만드는 방법을 알아보자.

1. Flask 설치하기:
먼저, Flask를 설치해야 한다. 터미널 또는 명령 프롬프트에서 다음 명령을 실행하여 Flask를 설치한다.

 

pip install flask

프로젝트 구조 설정하기: 다음과 같은 폴더 구조로 프로젝트를 설정한다.

crud_app/
  ├── app.py
  ├── templates/
  │   ├── index.html
  │   └── edit.html
  ├── static/
  │   └── style.css
  └── data/
      └── db.json

데이터 파일 생성: db.json 파일에 간단한 JSON 데이터베이스를 사용하여 데이터를 저장한다.

# db.json
{
  "data": []
}

Flask 애플리케이션 작성:
app.py 파일에 아래와 같이 Flask 애플리케이션 코드를 작성한다.

# app.py
from flask import Flask, render_template, request, redirect, url_for, jsonify
import json

app = Flask(__name__)

# 데이터베이스 로드
def load_data():
    with open('data/db.json', 'r') as f:
        data = json.load(f)
    return data

# 데이터 저장
def save_data(data):
    with open('data/db.json', 'w') as f:
        json.dump(data, f)

# 메인 페이지
@app.route('/')
def index():
    data = load_data()
    return render_template('index.html', items=data['data'])

# 아이템 추가
@app.route('/add', methods=['POST'])
def add_item():
    data = load_data()
    item = {
        'id': len(data['data']) + 1,
        'name': request.form['name'],
        'description': request.form['description']
    }
    data['data'].append(item)
    save_data(data)
    return redirect(url_for('index'))

# 아이템 수정
@app.route('/edit/<int:item_id>')
def edit_item(item_id):
    data = load_data()
    item = next((item for item in data['data'] if item['id'] == item_id), None)
    if item:
        return render_template('edit.html', item=item)
    else:
        return 'Item not found', 404

@app.route('/update/<int:item_id>', methods=['POST'])
def update_item(item_id):
    data = load_data()
    item = next((item for item in data['data'] if item['id'] == item_id), None)
    if item:
        item['name'] = request.form['name']
        item['description'] = request.form['description']
        save_data(data)
        return redirect(url_for('index'))
    else:
        return 'Item not found', 404

# 아이템 삭제
@app.route('/delete/<int:item_id>')
def delete_item(item_id):
    data = load_data()
    data['data'] = [item for item in data['data'] if item['id'] != item_id]
    save_data(data)
    return redirect(url_for('index'))

if __name__ == '__main__':
    app.run(debug=True)

HTML 템플릿 작성:
templates 폴더에 index.html과 edit.html 파일을 생성한다.

<!-- index.html -->
<!DOCTYPE html>
<html>
<head>
    <title>CRUD Application</title>
    <link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">
</head>
<body>
    <h1>CRUD Application</h1>
    <h2>Add Item</h2>
    <form action="/add" method="post">
        <label for="name">Name:</label>
        <input type="text" id="name" name="name" required>
        <label for="description">Description:</label>
        <input type="text" id="description" name="description" required>
        <input type="submit" value="Add">
    </form>

    <h2>Items</h2>
    <ul>
        {% for item in items %}
            <li>
                {{ item.name }} - {{ item.description }}
                <a href="{{ url_for('edit_item', item_id=item.id) }}">Edit</a>
                <a href="{{ url_for('delete_item', item_id=item.id) }}">Delete</a>
            </li>
        {% endfor %}
    </ul>
</body>
</html>
<!-- edit.html -->
<!DOCTYPE html>
<html>
<head>
    <title>Edit Item</title>
</head>
<body>
    <h1>Edit Item</h1>
    <form action="/update/{{ item.id }}" method="post">
        <label for="name">Name:</label>
        <input type="text" id="name" name="name" value="{{ item.name }}" required>
        <label for="description">Description:</label>
        <input type="text" id="description" name="description" value="{{ item.description }}" required>
        <input type="submit" value="Update">
    </form>
</body>
</html>

실행:
터미널에서 python app.py를 실행하여 애플리케이션을 시작한다. 이제 브라우저에서 http://127.0.0.1:5000/을 열면 CRUD 애플리케이션이 동작하는 것을 확인할 수 있다. 이 애플리케이션은 아이템을 추가, 수정, 삭제하고 저장된 아이템 목록을 조회할 수 있는 기능을 제공한다.

 

다음과 같은 경우에 CRUD가 적용될 수 있다:

 

  1. 블로그 애플리케이션: 새로운 글을 작성하고 저장하며, 글 목록을 조회하거나 특정 글을 수정 및 삭제하는 기능을 제공한다.
  2. 일정 관리 애플리케이션: 새로운 일정을 추가하고, 일정 목록을 조회하거나 특정 일정을 수정 및 삭제하는 기능을 제공한다.
  3. 사용자 관리 애플리케이션: 새로운 사용자를 등록하고, 사용자 목록을 조회하거나 특정 사용자 정보를 수정 및 삭제하는 기능을 제공한다.
  4. 소셜 미디어 애플리케이션: 새로운 게시물을 작성하고, 친구 목록을 조회하거나 특정 게시물을 수정 및 삭제하는 기능을 제공한다.

 

CRUD는 데이터 조작 기능이 필요한 거의 모든 애플리케이션에서 사용될 수 있으며, 데이터를 생성, 읽기, 수정, 삭제하는 기본적인 작업들을 통해 데이터베이스와 상호작용하는 데 사용된다.




728x90

+ Recent posts