1. 프로젝트 설정
먼저, Pyramid 프로젝트를 설정해야 합니다. Pyramid은 pip를 통해 설치할 수 있습니다:
pip install pyramid
프로젝트를 생성한 후, routes.py
파일에 URL 경로를 설정합니다. 예를 들어, /search
경로를 사용하여 검색 기능을 구현한다고 가정해보겠습니다:
from pyramid.config import Configurator
def search(request):
# 검색 기능 구현
...
config = Configurator()
config.add_route('search', '/search')
config.add_view(search, route_name='search', renderer='json')
app = config.make_wsgi_app()
2. 텍스트 검색 기능 구현
이제 search
함수에서 텍스트 검색 기능을 구현할 차례입니다. 여러 가지 방법으로 검색 기능을 구현할 수 있지만, 여기서는 단순한 문자열 비교를 사용하여 검색 결과를 반환하는 예를 살펴보겠습니다:
def search(request):
query = request.params.get('query') # 검색어 가져오기
documents = [...] # 검색 대상 문서 목록
results = []
for doc in documents:
if query in doc:
results.append(doc)
return {'results': results}
위의 코드에서 query
변수를 통해 검색어를 가져오고, documents
리스트를 통해 검색 대상 문서를 지정합니다. 그런 다음, for
루프를 통해 각 문서를 순회하면서 검색어와 일치하는지 확인합니다. 매칭되는 문서는 results
리스트에 추가되고, 최종적으로 results
를 반환합니다.
3. 검색 인터페이스 구성
마지막으로, 사용자가 검색어를 입력할 수 있는 간단한 검색 인터페이스를 구성해야 합니다. HTML 폼을 사용하여 검색어를 입력하고, 해당 폼을 서버로 제출하여 검색 결과를 받을 수 있습니다:
<!DOCTYPE html>
<html>
<head>
<title>텍스트 검색</title>
</head>
<body>
<h1>텍스트 검색</h1>
<form action="/search" method="GET">
<input type="text" name="query" placeholder="검색어를 입력하세요" />
<button type="submit">검색</button>
</form>
<div id="results"></div>
<script>
const form = document.querySelector('form');
const resultsDiv = document.querySelector('#results');
form.addEventListener('submit', (e) => {
e.preventDefault();
const query = form.query.value;
fetch(`/search?query=${query}`)
.then(response => response.json())
.then(data => {
resultsDiv.innerHTML = '';
data.results.forEach(result => {
const p = document.createElement('p');
p.innerHTML = result;
resultsDiv.appendChild(p);
});
});
});
</script>
</body>
</html>
위의 HTML 코드에서는 <form>
태그를 사용하여 검색어를 입력받고, <script>
태그를 사용하여 검색 결과를 받아와서 화면에 표시합니다. 검색 결과는 <div id="results">
요소 내부에 동적으로 추가됩니다.
결론
Pyramid을 사용하여 텍스트 검색 기능을 구현하는 방법을 알아보았습니다. 이를 활용하여 다양한 프로젝트에서 효율적으로 텍스트 검색 기능을 구현할 수 있습니다. Pyramid은 확장 가능하고 유연한 기능을 제공하여 웹 애플리케이션 개발을 좀 더 쉽고 편리하게 만들어줍니다.