[python] 웹 서버에 검색 기능 추가하기

이번 블로그 포스트에서는 Python으로 웹 서버에 검색 기능을 추가하는 방법에 대해 알아보겠습니다. 검색 기능은 웹 사이트나 앱에서 특정 내용을 검색할 수 있는 기능으로, 사용자가 원하는 정보를 쉽게 찾을 수 있도록 도와줍니다.

1. 필요한 라이브러리 설치하기

먼저, 검색 기능을 구현하기 위해 필요한 라이브러리인 Flask와 Flask_SQLAlchemy를 설치해야 합니다. 다음 명령을 사용하여 설치할 수 있습니다.

pip install flask
pip install flask_sqlalchemy

2. 데이터베이스 설정하기

검색 기능을 사용하기 위해서는 데이터베이스가 필요합니다. 이 예시에서는 SQLite 데이터베이스를 사용하겠습니다. 다음 코드를 사용하여 데이터베이스를 설정합니다.

from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///database.db'
db = SQLAlchemy(app)

3. 데이터 모델 생성하기

데이터베이스에 저장할 데이터의 모델을 생성해야 합니다. 예를 들어, 사용자가 검색할 수 있는 블로그 게시물을 저장하는 모델을 만들어보겠습니다.

class Post(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(100))
    content = db.Column(db.Text)

    def __repr__(self):
        return self.title

4. 검색 기능 구현하기

이제 검색 기능을 구현해보겠습니다. 다음 코드를 사용하여 검색 결과를 반환하는 함수를 작성합니다.

@app.route('/search', methods=['GET'])
def search():
    keyword = request.args.get('keyword')
    posts = Post.query.filter(Post.title.contains(keyword)).all()
    return render_template('search.html', keyword=keyword, posts=posts)

위 코드에서 keyword는 검색어를 전달하는 URL 매개변수입니다. Post.query.filter를 사용하여 검색어와 일치하는 게시물을 찾습니다. 그리고 search.html 템플릿에서 검색 결과를 출력합니다.

5. 검색 템플릿 작성하기

마지막으로 검색 결과를 보여줄 HTML 템플릿을 작성해야 합니다. 이 예시에서는 search.html 파일을 생성하고 다음과 같이 작성합니다.


{% for post in posts %}
  <h2>{{ post.title }}</h2>
  <p>{{ post.content }}</p>
{% endfor %}

위 코드에서는 검색 결과의 제목과 내용을 표시합니다.

결론

이제 Python을 사용하여 웹 서버에 검색 기능을 추가하는 방법을 알아보았습니다. 검색 기능은 사용자가 원하는 정보를 빠르게 찾을 수 있도록 도와줍니다. 위 예시를 참고하여 웹 애플리케이션에 검색 기능을 추가해 보세요.

참고 자료