Flask는 Python으로 웹 애플리케이션을 빠르게 만들 수 있는 경량 웹 프레임워크입니다. 이번에는 Flask를 사용하여 뉴스 애플리케이션을 구현하는 방법에 대해 알아보겠습니다.
목차
Flask 설치
Flask를 설치하려면 다음 명령어를 사용합니다.
pip install Flask
이 명령어를 실행하여 Flask를 설치합니다.
데이터베이스 설정
이 예시에서는 SQLite 데이터베이스를 사용하여 애플리케이션의 데이터를 저장할 것입니다. 데이터베이스를 설정하려면 다음과 같이 코드를 작성합니다.
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///news.db'
db = SQLAlchemy(app)
class News(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)
위 코드는 Flask 애플리케이션에 SQLAlchemy를 연결하고, News
라는 모델을 정의하며, SQLite 데이터베이스에 news.db
라는 이름으로 저장한다는 것을 보여줍니다.
애플리케이션 구현
뉴스 애플리케이션의 구현은 Flask의 라우팅 및 템플릿 기능을 사용하여 다양한 기능을 추가할 수 있습니다. 사용자에게 뉴스를 보여주는 기능부터 뉴스를 추가하고 삭제하는 기능까지 다양한 기능을 구현할 수 있습니다.
from flask import render_template, request, redirect, url_for
@app.route('/')
def index():
news_list = News.query.all()
return render_template('index.html', news_list=news_list)
@app.route('/add_news', methods=['GET', 'POST'])
def add_news():
if request.method == 'POST':
title = request.form['title']
content = request.form['content']
news = News(title=title, content=content)
db.session.add(news)
db.session.commit()
return redirect(url_for('index'))
return render_template('add_news.html')
@app.route('/delete_news/<int:id>')
def delete_news(id):
news = News.query.get_or_404(id)
db.session.delete(news)
db.session.commit()
return redirect(url_for('index'))
위 코드는 Flask 애플리케이션에 세 가지 메인 라우트를 추가한 예시입니다. 이 예시에서는 홈페이지에 뉴스 목록을 보여주는 index
라우트, 뉴스를 추가하는 add_news
라우트, 그리고 뉴스를 삭제하는 delete_news
라우트가 구현되어 있습니다.
결론
Flask를 사용하여 뉴스 애플리케이션을 구현하는 방법에 대해 알아보았습니다. Flask의 간결한 문법과 다양한 기능을 활용하여 애플리케이션을 발전시킬 수 있습니다. Flask를 사용하여 웹 애플리케이션을 구현하고자 하는 경우, 이 예시를 참고하면 도움이 될 것입니다.
위에서 다룬 내용을 토대로 자신만의 뉴스 애플리케이션을 만들어 보시기 바랍니다. 감사합니다!
참고 자료
- Flask 공식 문서: https://flask.pocoo.org/docs/
- Flask SQLAlchemy 공식 문서: https://flask-sqlalchemy.palletsprojects.com/