views.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738
  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-20 17:19:6 (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. page, number = self.page_info
  21. keyword = query_dict.pop('keyword', None)
  22. include = query_dict.pop('include', '0')
  23. if keyword and len(keyword) >= 2:
  24. fields = None
  25. if include == '0':
  26. fields = ['title', 'content']
  27. elif include == '1':
  28. fields = ['title']
  29. elif include == '2':
  30. fields = ['content']
  31. results = Topic.query.whoosh_search(
  32. keyword, fields=fields).paginate(page, number, True)
  33. data = {'title': 'Search', 'results': results, 'keyword': keyword}
  34. return render_template('search/result.html', **data)
  35. data = {'title': 'Search'}
  36. return render_template('search/search.html', **data)