views.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. # **************************************************************************
  4. # Copyright © 2017 jianglin
  5. # File Name: views.py
  6. # Author: jianglin
  7. # Email: xiyang0807@gmail.com
  8. # Created: 2017-03-31 17:26:28 (CST)
  9. # Last Update:星期日 2017-4-16 15:4:55 (CST)
  10. # By:
  11. # Description:
  12. # **************************************************************************
  13. from flask import request, render_template
  14. from forums.common.views import BaseMethodView as MethodView
  15. from forums.api.topic.models import Topic
  16. from forums.extension import search
  17. class SearchView(MethodView):
  18. def get(self):
  19. query_dict = request.data
  20. keyword = query_dict.pop('keyword', None)
  21. include = query_dict.pop('include', '0')
  22. if keyword and len(keyword) >= 2:
  23. fields = None
  24. if include == '0':
  25. fields = ['title', 'content']
  26. elif include == '1':
  27. fields = ['title']
  28. elif include == '2':
  29. fields = ['content']
  30. results = search.whoosh_search(Topic, keyword, fields=fields)
  31. data = {'title': 'Search', 'results': results, 'keyword': keyword}
  32. return render_template('search/result.html', **data)
  33. data = {'title': 'Search'}
  34. return render_template('search/search.html', **data)