이 블로그 검색

2012년 8월 8일 수요일

Django 게시판 만들기 4 - 검색 기능 구현


이제 검색 기능만 구현하면 이 간단 게시판은 완성이다. 우리는 전체목록 출력을 위한 listSpecificPage.html 템플릿 작성시, 검색 버튼을 누르면 /searchWithSubject/ 로 이동하게 해 놓았다. 그러므로, 지금까지 해왔던 것처럼 url 맵핑 및 컨트롤러 구현을 실시한다.

- url 맵핑
urlpatterns = patterns('',
    url(r'^$', views.home),
    url(r'^show_write_form/$', views.show_write_form),
    url(r'^DoWriteBoard/$', views.DoWriteBoard),
    url(r'^listSpecificPageWork/$', views.listSpecificPageWork),
    url(r'^viewWork/$', views.viewWork),
    url(r'^listSearchedSpecificPageWork/$', views.listSearchedSpecificPageWork),
    url(r'^listSpecificPageWork_to_update/$', views.listSpecificPageWork_to_update),
    url(r'^updateBoard/$', views.updateBoard),
    url(r'^DeleteSpecificRow/$', views.DeleteSpecificRow),
    url(r'^searchWithSubject/$', views.searchWithSubject),
)

- 컨트롤러 작성
@csrf_exempt
def searchWithSubject(request):
    searchStr = request.POST['searchStr']
    print 'searchStr', searchStr

    url = '/listSearchedSpecificPageWork?searchStr=' + searchStr +'&pageForView=1'
    return HttpResponseRedirect(url)

컨트롤러는 이미 우리가 작성해 놓은 /listSearchedSpecificPageWork 로 redirection 만을 하고 있다. 이전 시간에 게시물 보기 기능을 구현하면서 목록으로 돌아가기 기능 구현시, 먼저 검색을 위한 컨트롤러를 작성해 놓은 것이 기억날 것이다. 원래 그것은 검색 기능 구현시에 작성이 되어야 했던 것 (즉 지금)인데, 먼저 작성을 했었다. 그때 작성해놓은 것을 지금 사용하는것이니 착오없기를 바란다. 이미 만들어 놓은것이 있기 때문에 검색 기능 구현은 이처럼 간단하게 끝난다.

지금까지 django를 이용한 간단 게시판 작성 예제를 만들어 보았다. 오로지 실제 돌아가는 게시판 속성 작성을 염두에 두고 글을 썼고, django를 이루는 상세 내용은 건너뛴 부분이 많기 때문에 지금까지의 내용만 가지고는 django를 상세히 알수 없을 것이다. 자세한 세부 사항은 공식 사이트 문서를 참조하시길 바라면서 나처럼 실질적인 예제를 찾고 계셨던 분들에게 조금이나마 도움이 되었으면 하는 바람이다.


이 예제의 전체 소스는 아래에서 받을 수 있다.
https://github.com/jeremyko/dj_board


참고
https://www.djangoproject.com/
http://www.djangobook.com/en/2.0/



댓글 1개:

  1. Django 공부하는데 너무 큰도움이 되었습니다. :D
    그런데 하다보니, 자바스크립트를 공부해야할거같다는 생각이드네요 ㅜㅜ

    답글삭제