-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.py
executable file
·80 lines (67 loc) · 2.33 KB
/
main.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
from flask import Flask, request, jsonify, render_template, make_response, json, redirect, url_for
from models import Contact
from functools import wraps
from google.appengine.ext import db
from google.appengine.api.datastore import Key
app = Flask(__name__)
app.config['DEBUG'] = True
def crossdomain(origin=None, methods=None, headers=None,
max_age=21600, attach_to_all=True,
automatic_options=True):
if methods is not None:
methods = ', '.join(sorted(x.upper() for x in methods))
if headers is not None and not isinstance(headers, basestring):
headers = ', '.join(x.upper() for x in headers)
if not isinstance(origin, basestring):
origin = ', '.join(origin)
if isinstance(max_age, timedelta):
max_age = max_age.total_seconds()
def get_methods():
if methods is not None:
return methods
options_resp = current_app.make_default_options_response()
return options_resp.headers['allow']
@app.route('/')
def index():
return render_template('index.html')
@app.route('/api/contacts', methods = ['POST', 'OPTIONS'])
@crossdomain(origin='*')
def contacts():
if request.method == 'GET':
results = Contact.all()
json_results = []
for result in results:
d = {'id': result.key().id(),
'firstName': result.firstName,
'lastName': result.lastName,
'bday': result.bday,
'zodiac': result.zodiac}
json_results.append(d)
return jsonify(contacts=json_results)
@app.route('/api/contacts/<int:contact_id>', methods = ['POST', 'OPTIONS'])
@crossdomain(origin='*')
def contact(contact_id):
if request.method == 'GET':
result = Contact.get_by_id (contact_id, parent=None)
json_results = []
d = {'id': result.key().id(),
'firstName': result.firstName,
'lastName': result.lastName,
'bday': result.bday,
'zodiac': result.zodiac}
json_results.append(d)
return jsonify(contacts=json_results)
@app.route('/api/contacts', methods = ['POST', 'OPTIONS'])
@crossdomain(origin='*')
def create_task():
contact = Contact(
firstName = request.json['firstName'],
lastName = request.json['lastName'],
bday = request.json['bday'],
zodiac = request.json['zodiac']
)
contact.put()
return redirect(url_for('index'))
@app.errorhandler(404)
def page_not_found(e):
return redirect(url_for('index'))