코딩공부/Python Django

KKU likelion django project (8)

integerJI 2020. 1. 2. 12:13

이번 강의에서는 검색 기능을 만들어 보겠습니다.

 

검색어를 받기 위하여 home.html에 search form을 만들어 줍시다.

 

<form action="{% url 'search' %}" method="get">

  <input type="text" name="q" value="{{ q }}">

  <input type="submit" value="검색">

</form>

이제 검색어를 받고 필터링한 글목록을 보여줄 search.html을 만들어주어 home.html의 내용을 모두 복사하여 넣어줍니다.

 

 

postapp/templates/search.html의 내용은 home.html과 동일합니다.

 

이제 필터링을 해줄 함수와 url을 설정합니다.

 

views.py로 돌아와

 

 

def search(request):

    posts = Post.objects.all()

    q = request.GET.get('q'''

 

    if q:

        posts = posts.filter(title__icontains=q) 

 

        return render(request, 'search.html', {

            'posts' : posts,

            'q' : q,

        })

search 함수를 생성하여 준 뒤

 

urls.py로 가서 

path('search', views.search, name='search'),

search가 작동할 수 있게 url을 설정하여 줍니다.

 

 

서버를 확인하여 보면 글 검색 form이 이상 없이 생겼다는 걸 알 수 있고

 

이상 없이 나오는 걸 확인할 수 있습니다.