-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.py
More file actions
123 lines (90 loc) · 2.59 KB
/
app.py
File metadata and controls
123 lines (90 loc) · 2.59 KB
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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
#!/usr/bin/python3
from flask import Flask
from flask import jsonify
from flask_mysqldb import MySQL
from flask import request
app = Flask(__name__)
mysql = MySQL()
app.config['MYSQL_USER'] = 'bookuser'
app.config['MYSQL_PASSWORD'] = 'BookUser123.'
app.config['MYSQL_DB'] = 'booksDB'
app.config['MYSQL_HOST'] = 'localhost'
mysql.init_app(app)
books = [
{
'Name': 'Snow White',
'Author': 'Grimm brothers'
},
{
'Name': 'The Song of Ice and Fire',
'Author': 'George R.R. Martin'
},
{
'Name': 'Alice\'s Adventures in Wonderland',
'Author': 'Lewis Carrol'
}
]
@app.route('/', methods=['GET'])
def hello_world():
return 'Hello world!'
@app.route('/api/temp/books', methods=['GET'])
def return_all_py():
return jsonify({'books': books})
@app.route('/api/temp/books/titles', methods=['GET'])
def return_titles_py():
authors_tmp = []
for book in books:
authors_tmp.append(book['Name'])
return jsonify(authors_tmp)
@app.route('/api/books', methods=['GET'])
def return_books_sql():
conn = mysql.connect
cursor = conn.cursor()
cursor.execute('SELECT Name, Author FROM Book')
rows = cursor.fetchall()
return jsonify({'rows': rows})
@app.route('/api/books/titles', methods=['GET'])
def return_book_titles_sql():
conn = mysql.connect
cursor = conn.cursor()
cursor.execute('SELECT Name FROM Book')
rows = cursor.fetchall()
return jsonify({'titles': rows})
@app.route('/api/books', methods=['POST'])
def add_book():
new_book = request.get_json()
conn = mysql.connect
cursor = conn.cursor()
cmd = "INSERT INTO Book (Name, Author) VALUES (%s, %s)"
params = (new_book['Name'], new_book['Author'])
cursor.execute(cmd, params)
conn.commit()
cursor.close()
conn.close()
return "200"
@app.route('/api/books/<string:name>', methods=['PUT'])
def edit_book(name):
book = request.get_json()
print(book)
conn = mysql.connect
cursor = conn.cursor()
cmd = "UPDATE Book SET Name = %s, Author = %s WHERE Name = %s"
params = (book['Name'], book['Author'], name)
cursor.execute(cmd, params)
conn.commit()
cursor.close()
conn.close()
return "200"
@app.route('/api/books/delete/<string:name>', methods=['DELETE'])
def delete_book(name):
conn = mysql.connect
cursor = conn.cursor()
cmd = "DELETE FROM Book WHERE Name = %s"
params = [name]
cursor.execute(cmd, params)
conn.commit()
cursor.close()
conn.close()
return "200"
if __name__ == "__main__":
app.run(host="0.0.0.0", port=80, debug=True)