[python] Flask와 MongoDB를 사용하여 블로그 포스팅 앱 만들기

이번에는 Python의 Flask 웹 프레임워크와 MongoDB를 이용하여 간단한 블로그 포스팅 앱을 만들어보겠습니다.

1. Flask 설치 및 설정

먼저, 가상 환경을 설정하고 Flask를 설치합니다.

python -m venv myenv
source myenv/bin/activate
pip install flask

다음으로, MongoDB와의 연결을 위해 pymongo를 설치합니다.

pip install pymongo

2. MongoDB 연결

Flask 애플리케이션에서 MongoDB에 연결하려면 다음과 같이 작성합니다.

from flask import Flask
from pymongo import MongoClient

app = Flask(__name__)

client = MongoClient('mongodb://localhost:27017/')
db = client['blog']
collection = db['posts']

3. 라우팅 및 템플릿

다음으로, 포스팅을 작성하고 표시하기 위한 기본적인 라우팅 및 템플릿을 생성합니다.

from flask import render_template, request

@app.route('/')
def index():
    posts = collection.find()
    return render_template('index.html', posts=posts)

@app.route('/post', methods=['GET', 'POST'])
def post():
    if request.method == 'POST':
        title = request.form['title']
        content = request.form['content']
        post = {'title': title, 'content': content}
        collection.insert_one(post)
   return render_template('post.html')

4. 템플릿 작성

마지막으로, 템플릿 파일을 작성하여 포스팅을 표시하고 작성할 수 있도록 합니다.


<!-- index.html -->
<!DOCTYPE html>
<html>
<body>
  <h1>블로그 포스트</h1>
  {% for post in posts %}
  <div>
    <h3>{{ post.title }}</h3>
    <p>{{ post.content }}</p>
  </div>
  {% endfor %}
</body>
</html>

<!-- post.html -->
<!DOCTYPE html>
<html>
<body>
  <h1>포스트 작성</h1>
  <form method="post" action="/post">
    <input type="text" name="title" placeholder="제목"><br>
    <textarea name="content" placeholder="내용"></textarea><br>
    <input type="submit" value="게시">
  </form>
</body>
</html>

이제 Flask와 MongoDB를 이용하여 간단한 블로그 포스팅 앱을 만들었습니다. 물론 이것은 기본에 불과하며, 보다 많은 기능을 추가할 수 있습니다.

Happy coding! 🚀