views.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637
  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: Thursday 2018-07-26 10:45:40 (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.db import Topic
  16. class SearchView(MethodView):
  17. def get(self):
  18. query_dict = request.data
  19. page, number = self.pageinfo
  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 = Topic.query.msearch(
  31. keyword, fields=fields).paginate(page, number, True)
  32. data = {'title': 'Search', 'results': results, 'keyword': keyword}
  33. return render_template('search/result.html', **data)
  34. data = {'title': 'Search'}
  35. return render_template('search/search.html', **data)