파이썬으로 웹 애플리케이션 개발하기: Flask를 활용한 CRUD 기능 구현
소개
웹 개발은 현재 매우 인기 있는 분야 중 하나로, 파이썬을 이용한 웹 애플리케이션 개발은 특히 많은 사람들에게 사랑받고 있습니다. Flask는 파이썬으로 웹 애플리케이션을 개발하기 위한 가벼운 프레임워크로, 많은 개발자들이 Flask를 사용하여 웹 애플리케이션을 만들고 있습니다. 이번 포스팅에서는 Flask를 활용하여 CRUD (Create, Read, Update, Delete) 기능을 구현하는 방법에 대해 알아보겠습니다.
Flask 프로젝트 설정
먼저, Flask 프레임워크를 사용하여 프로젝트를 시작하기 위해 가장 기본적인 설정을 해야 합니다. 가상 환경을 생성한 후 Flask를 설치해야 합니다. 아래의 명령어를 이용하여 가상 환경을 생성하고 Flask를 설치할 수 있습니다.
$ python -m venv myenv
$ source myenv/bin/activate
$ pip install flask
가상 환경을 생성한 후, Flask를 설치했다면, 이제 Flask 프로젝트를 시작할 수 있습니다. 프로젝트 폴더를 생성하고 app.py
파일을 만들어 아래의 코드를 작성합니다.
```python from flask import Flask from flask_sqlalchemy import SQLAlchemy
app = Flask(name) app.config['SQLALCHEMYDATABASEURI'] = 'sqlite:///mydatabase.db' db = SQLAlchemy(app)
if name == 'main': app.run() ```
위의 코드는 Flask 애플리케이션을 초기화하고 데이터베이스를 설정하는 기본적인 코드입니다. SQLALCHEMY_DATABASE_URI
설정을 통해 SQLite 데이터베이스를 사용하도록 설정했습니다.
모델과 데이터베이스 생성
이제 데이터베이스를 사용하기 위해 모델을 생성하고 데이터베이스를 생성해야 합니다. Flask의 SQLAlchemy를 사용하여 모델을 정의하고 데이터베이스를 생성하는 방법에 대해 알아보겠습니다.
```python class Post(db.Model): id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(100), nullable=False) content = db.Column(db.Text, nullable=False)
db.create_all() ```
위의 코드에서 Post
모델은 id
, title
, content
속성을 가지고 있습니다. id
는 주키(primary key)로 사용되며, title
과 content
는 각각 100자 이내의 문자열과 텍스트 형태로 저장됩니다. db.create_all()
메서드는 모델을 기반으로 데이터베이스를 생성합니다.
CRUD 기능 구현
이제 CRUD(Create, Read, Update, Delete) 기능을 구현해보겠습니다. 각 기능에 대한 라우트 함수를 정의하고, HTTP 메서드(GET, POST, PUT, DELETE)를 사용하여 요청을 처리하는 방법에 대해 알아보겠습니다.
Create
```python @app.route('/posts', methods=['POST']) def create_post(): title = request.form.get('title') content = request.form.get('content')
new_post = Post(title=title, content=content)
db.session.add(new_post)
db.session.commit()
return 'Post created successfully'
```
위의 코드에서 create_post
함수는 /posts
URL로 POST 요청이 들어왔을 때 호출되는 함수입니다. 요청에서 제목(title
)과 내용(content
)을 가져와 새로운 Post
객체를 생성하고 데이터베이스에 추가합니다.
Read
```python
@app.route('/posts/
return f'Title: {post.title}\nContent: {post.content}'
```
위의 코드에서 get_post
함수는 /posts/<post_id>
URL로 GET 요청이 들어왔을 때 호출되는 함수입니다. 요청에서 post_id
를 가져와 해당 id
에 해당하는 Post
객체를 조회하고, 조회한 결과를 반환합니다. 만약 해당 id
에 해당하는 포스트가 없다면 404 에러를 반환합니다.
Update
```python
@app.route('/posts/
title = request.form.get('title')
content = request.form.get('content')
post.title = title
post.content = content
db.session.commit()
return 'Post updated successfully'
```
위의 코드에서 update_post
함수는 /posts/<post_id>
URL로 PUT 요청이 들어왔을 때 호출되는 함수입니다. 요청에서 post_id
와 새로운 제목(title
)과 내용(content
)을 가져와 해당 id
에 해당하는 Post
객체를 조회하고, 업데이트합니다.
Delete
```python
@app.route('/posts/
db.session.delete(post)
db.session.commit()
return 'Post deleted successfully'
```
위의 코드에서 delete_post
함수는 /posts/<post_id>
URL로 DELETE 요청이 들어왔을 때 호출되는 함수입니다. 요청에서 post_id
를 가져와 해당 id
에 해당하는 Post
객체를 조회하고, 삭제합니다.
결론
이번 포스팅에서는 Flask를 사용하여 CRUD 기능을 구현하는 방법에 대해 알아보았습니다. Flask를 이용하여 웹 애플리케이션을 개발하면, 간단하면서도 강력한 기능을 구현할 수 있습니다. Flask를 활용하여 다양한 웹 애플리케이션을 개발해보세요!
'■ 칼퇴를 위한 파이썬 : 사례' 카테고리의 다른 글
파이썬으로 데이터 시각화하기: Plotly 기초 (0) | 2023.07.13 |
---|---|
파이썬으로 웹 스크래핑하기: API 사용법 (0) | 2023.07.12 |
파이썬으로 데이터 전처리하기: 정규화와 표준화 (0) | 2023.07.12 |
파이썬으로 데이터베이스 연결하기: MySQL 사용법 (0) | 2023.07.12 |
파이썬으로 자동화하기: 키보드 및 마우스 제어 (0) | 2023.07.12 |