-
Notifications
You must be signed in to change notification settings - Fork 0
/
bonito.py
105 lines (82 loc) · 3.01 KB
/
bonito.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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
# -*- coding: utf-8 -*-
import json
import sys
from flask import Flask, render_template, jsonify, make_response, request
from model.Library import Library
from search import get_books
app = Flask(__name__)
@app.route('/')
def hello_world():
return render_template('index.html')
@app.route('/api/libraries')
def get_libraries():
library = Library()
library.library_id = 1
library.name = '분당도서관'
library.website = 'http://bd.snlib.net'
library.image = 'http://tong.visitkorea.or.kr/cms/resource/31/1785931_image2_1.jpg'
library2 = Library()
library2.library_id = 2
library2.name = '성남중앙도서관'
library2.website = 'http://ct.snlib.net'
library2.image = 'http://tong.visitkorea.or.kr/cms/resource/49/1785949_image2_1.jpg'
result = {}
libraries = []
libraries.append(library.to_json())
libraries.append(library2.to_json())
# result['libraries'] = libraries
result_str = json.dumps(libraries, ensure_ascii=False)
# try:
# result_str = jsonify(libraries=libraries)
# except Exception, e:
# print e
# print result.to_json()
response = make_response(result_str)
response.headers['Content-Type'] = 'application/json;charset=UTF-8'
response.headers['Access-Control-Allow-Credentials'] = 'true'
response.headers['Access-Control-Allow-Origin'] = '*'
return response
@app.route('/api/libraries/<library_id>')
def get_library(library_id):
library = Library()
library.library_id = 1
library.name = '분당도서관'
library.website = 'http://bd.snlib.net'
library.image = 'http://tong.visitkorea.or.kr/cms/resource/31/1785931_image2_1.jpg'
result_str = json.dumps(library.to_json(), ensure_ascii=False)
response = make_response(result_str)
response.headers['Content-Type'] = 'application/json;charset=UTF-8'
response.headers['Access-Control-Allow-Credentials'] = 'true'
response.headers['Access-Control-Allow-Origin'] = '*'
return response
# http://ash84.net/2015/07/16/flask-euckr/
@app.route('/api/books/search', methods=['POST', 'GET'])
def search_books():
if request.method == 'POST':
form_data = decode_raw_data(request.get_data())
query = form_data['query']
find_books = get_books(query)
books = []
for book in find_books:
books.append(book.to_json())
else:
books = ''
result_str = json.dumps(books, ensure_ascii=False)
response = make_response(result_str)
response.headers['Content-Type'] = 'application/json;charset=UTF-8'
response.headers['Access-Control-Allow-Credentials'] = 'true'
response.headers['Access-Control-Allow-Origin'] = '*'
return response
def decode_raw_data(raw):
try:
data = dict()
for r in raw.split('&'):
c = r.split('=')
data[c[0]] = c[1]
return data
except Exception as e:
# TODO : Exception logging
return None
if __name__ == '__main__':
print sys.path
app.run(host='192.168.219.117')