-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmy_api.py
84 lines (68 loc) · 2.1 KB
/
my_api.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
from random import randint
from flask import Flask,request
import sqlite3
import json
app = Flask(__name__)
def convert_list(list):
new_dict = []
data = {}
for item in list:
data = {
'name': item[1],
'map_url': item[2],
'img': item[3],
'location': item[4],
'hase_sokects': item[5],
'has_toilet': item[6],
'has_wifi': item[7],
'can_take_calls': item[8],
'seats': item[9],
'coffie_price': item[10]
}
new_dict.append(data)
return new_dict
@app.route("/random")
def random():
db = sqlite3.connect('cafes.db')
cursor = db.cursor()
cursor.execute(f'SELECT * FROM cafe WHERE id={randint(1, 21)}')
row = cursor.fetchall()
data = convert_list(row)
return data[0]
@app.route('/all')
def all():
db = sqlite3.connect('cafes.db')
cursor = db.cursor()
cursor.execute(f'SELECT * FROM cafe')
row = cursor.fetchall()
data = convert_list(row)
return {'data':data}
@app.route('/search')
def search():
loc = request.args
db = sqlite3.connect('cafes.db')
cursor = db.cursor()
cursor.execute(f'SELECT * FROM cafe WHERE location="{loc["loc"]}"')
row = cursor.fetchall()
data = convert_list(row)
return {'data':data}
@app.route('/add' , methods =['POST','GET'])
def add():
if request.method =='POST':
data = tuple(request.form.values())
db = sqlite3.connect('cafes.db')
cursor = db.cursor()
cursor.execute(f"INSERT INTO cafe VALUES{data}")
db.commit()
return {'Data':'Added'}
@app.route('/update/<id>' , methods =['POST','GET','PATCH'])
def remove(id):
if request.method =='PATCH':
attr =list(request.form.keys())[0]
db = sqlite3.connect('cafes.db')
cursor = db.cursor()
cursor.execute(f"UPDATE cafe SET {attr}=' {request.form[attr]}' WHERE id = {id}")
db.commit()
return {'data':attr}
if __name__ == '__main__':
app.run(debug=True)