-
Notifications
You must be signed in to change notification settings - Fork 1
/
search.py
69 lines (47 loc) · 1.66 KB
/
search.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#!/usr/bin/env python
import cgi
import os
import xml.etree.cElementTree as etree
from google.appengine.ext.webapp import template
from google.appengine.ext import webapp
from google.appengine.api import memcache
from google.appengine.api import urlfetch
from google.appengine.ext.webapp.util import run_wsgi_app
from google.appengine.api import users, search
import webapp2
from model import *
# Import for data storage
from google.appengine.ext import db
from basehandler import BaseHandler
class SearchPage(BaseHandler):
def get(self):
url = self.request.url.split("%3D")[1]
category = url.split("&")[0]
query = url.split("&")[1]
results = Item.all().search(query.lower())
results.filter("category =", category)
dispItems = []
for item in results:
disp = self.itemToDisplayItem(item)
dispItems.append(disp)
values = {'query': query, \
'items':dispItems}
path = os.path.join(os.path.dirname(__file__), 'search.html')
self.response.out.write(template.render(path,values))
def post(self):
numArgs = len(self.request.arguments())
if numArgs == self.SEARCH:
# this is a search!
self.redirect('/search=' + self.request.get('category') + '&' \
+ self.request.get('query'))
self.get()
# this is probably bad
config = {}
config['webapp2_extras.sessions'] = dict(secret_key='1234')
app = webapp2.WSGIApplication([('/search=.*', SearchPage)],
config=config,
debug=True)
def main():
run_wsgi_app(app)
if __name__ == "__main__":
main()