-
Notifications
You must be signed in to change notification settings - Fork 0
/
backend.py
21 lines (19 loc) · 872 Bytes
/
backend.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import psycopg2, psycopg2.extras
import little_pger as db
from flask import *
application = Flask('autocomplete-tribute')
application.debug = True
@application.route('/autocomplete', methods=['GET'])
def autocomplete():
conn = psycopg2.connect("dbname=autocomplete-tribute user=christian",
connection_factory=psycopg2.extras.RealDictConnection)
cursor = conn.cursor()
where = {}
if request.args['query']:
query_tokens = request.args['query'].split()
fields = ['adjective', 'animal', 'version']
# MUST be a set in this context!
where[('||'.join(fields), 'ilike')] = set(['%%%s%%' % v for v in query_tokens])
# else: we want everything!
return jsonify(success=True,
data=db.select(cursor, 'ubuntu', where=where, order_by='id'))