SlideShare a Scribd company logo
Blog 앱 확장 - 검색 기능
@sokunn
개요
» 다양한 패키지들이 있음
» Django-haystack 패키지가 많이 사용됨
https://github.com/django-haystack/django-haystack
» 간단한 검색은 장고 자체의 Q-객체를 이용하여 구
현 가능
2
URLconf
blog/urls.py
url (r'^search/$', SearchFormView.as_view(), name='search'),
» 뷰 클래스: SearchFormView
검색 폼을 보여주고 폼 데이터를 처리. FormView를 상속
» URL 패턴: blog.search
3
forms
blog/forms.py
from django import forms
class PostSearchForm(forms.Form):
search_word = forms.CharField(label='Search Word')
» django.forms.Form 상속
» CharField 는 TextInput 위젯, label은 input앞의 레이블로 표시됨
» search_word 는 input tag의 id 및 name, label tag의 id에 사용됨
4
views
blog/views.py
» 소스 참조
» SearchFormview: Formview 제네릭 뷰 상속 → Post 요청에 대해
form_valid 함수 실행 후 적절한 URL로 리다이렉트
» 폼, 템플릿 지정
» form_valid 함수 오버라이딩(안하면 Formview의 함수가 실행됨)
» Q객체로 filter 함수의 매칭 조건에 OR 적용 가능
5
templates
templates/base.html
<li><a href="{% url 'blog:search' %}">Search</a></li>
» 상단 메뉴에 "Search” 추가
6
templates
templates/post_search.html
» 소스 참조
» 검색 폼 출력: csrf 토큰, as_table로 form을 테이블 방식으로 표시,
submit 버튼
» 검색결과 출력: 검색 결과가 있을 경우 순회하며 내용 출력, 검색
결과가 없을 경우 "<검색단어> Not Found" 문장 출력
7
감사합니다
8

More Related Content

PPTX
Google Hacking
PPTX
Hacosa js study 6th
DOC
PDF
Pic 1 Leo Daly
DOCX
Datos generales del entrevistado
PPTX
eTwinning Quality Labels
PDF
Yma wnl 5 06-11
DOC
Excel funcionesbasicas-100130150120-phpapp01
Google Hacking
Hacosa js study 6th
Pic 1 Leo Daly
Datos generales del entrevistado
eTwinning Quality Labels
Yma wnl 5 06-11
Excel funcionesbasicas-100130150120-phpapp01

Viewers also liked (10)

PPTX
Tonto
DOC
PPT
Множення многочлена на одночлен
PDF
176396441 itil-continual-service-improvement esp
PDF
Hacking Portugal , C-days 2016 , v1.0
PDF
La Mar de Cels - infantil
PPTX
Ms excel 2003 intermediate
PDF
19 Reasons for GigaFactory-2 in Portugal
PPTX
Portugal powerpoint
PPTX
19 challenging thoughts about leadership 2nd edition
Tonto
Множення многочлена на одночлен
176396441 itil-continual-service-improvement esp
Hacking Portugal , C-days 2016 , v1.0
La Mar de Cels - infantil
Ms excel 2003 intermediate
19 Reasons for GigaFactory-2 in Portugal
Portugal powerpoint
19 challenging thoughts about leadership 2nd edition
Ad

Similar to Django study part9 (11)

PDF
간단한 블로그를 만들며 Django 이해하기
KEY
Html5&css 3장
PDF
Django admin site 커스텀하여 적극적으로 활용하기
PPTX
Django - CRUD 기능 구현
PDF
Django, 저는 이렇게 씁니다.
PDF
Python codelab2
PPTX
레거시 시스템에 Django 들이밀기
PDF
장고로 웹서비스 만들기 기초
PDF
Python codelab1
PDF
쉽게 쓰여진 Django
PDF
Hoodpub 기술 발표
간단한 블로그를 만들며 Django 이해하기
Html5&css 3장
Django admin site 커스텀하여 적극적으로 활용하기
Django - CRUD 기능 구현
Django, 저는 이렇게 씁니다.
Python codelab2
레거시 시스템에 Django 들이밀기
장고로 웹서비스 만들기 기초
Python codelab1
쉽게 쓰여진 Django
Hoodpub 기술 발표
Ad

Django study part9

  • 1. Blog 앱 확장 - 검색 기능 @sokunn
  • 2. 개요 » 다양한 패키지들이 있음 » Django-haystack 패키지가 많이 사용됨 https://github.com/django-haystack/django-haystack » 간단한 검색은 장고 자체의 Q-객체를 이용하여 구 현 가능 2
  • 3. URLconf blog/urls.py url (r'^search/$', SearchFormView.as_view(), name='search'), » 뷰 클래스: SearchFormView 검색 폼을 보여주고 폼 데이터를 처리. FormView를 상속 » URL 패턴: blog.search 3
  • 4. forms blog/forms.py from django import forms class PostSearchForm(forms.Form): search_word = forms.CharField(label='Search Word') » django.forms.Form 상속 » CharField 는 TextInput 위젯, label은 input앞의 레이블로 표시됨 » search_word 는 input tag의 id 및 name, label tag의 id에 사용됨 4
  • 5. views blog/views.py » 소스 참조 » SearchFormview: Formview 제네릭 뷰 상속 → Post 요청에 대해 form_valid 함수 실행 후 적절한 URL로 리다이렉트 » 폼, 템플릿 지정 » form_valid 함수 오버라이딩(안하면 Formview의 함수가 실행됨) » Q객체로 filter 함수의 매칭 조건에 OR 적용 가능 5
  • 6. templates templates/base.html <li><a href="{% url 'blog:search' %}">Search</a></li> » 상단 메뉴에 "Search” 추가 6
  • 7. templates templates/post_search.html » 소스 참조 » 검색 폼 출력: csrf 토큰, as_table로 form을 테이블 방식으로 표시, submit 버튼 » 검색결과 출력: 검색 결과가 있을 경우 순회하며 내용 출력, 검색 결과가 없을 경우 "<검색단어> Not Found" 문장 출력 7