Skip to content

Commit b808ece

Browse files
committed
added lab04 example solution
1 parent 5b6d635 commit b808ece

File tree

3 files changed

+1040
-2
lines changed

3 files changed

+1040
-2
lines changed

lab_04/flask_lab_example.py

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
from flask import Flask, jsonify, request
2+
import pandas as pd
3+
4+
app = Flask(__name__)
5+
6+
@app.route("/")
7+
def hello_world():
8+
"""Return a friendly HTTP greeting."""
9+
10+
return "<p>Hello, World!</p>"
11+
12+
13+
@app.get("/api/list")
14+
def list_2():
15+
format = request.args.get('format', 'json')
16+
filterby = request.args.get('filterby',None)
17+
filtervalue = request.args.get('filtervalue',None)
18+
limit = int(request.args.get('limit', 1000))
19+
offset = int(request.args.get('offset', 0))
20+
21+
data = pd.read_csv('videos_data.csv')
22+
if filterby:
23+
if filtervalue is None:
24+
return "Invalid filtervalue"
25+
elif filterby not in data.columns:
26+
return "Invalid filterby column"
27+
else:
28+
data = data[data[filterby] == int(filtervalue)]
29+
data = data.iloc[offset:offset+limit]
30+
if format == 'json':
31+
return jsonify(data.to_dict(orient='records'))
32+
elif format == 'csv':
33+
return data.to_csv(index=False)
34+
else:
35+
return "Invalid format"
36+
37+
if __name__ == "__main__":
38+
app.run(debug=True)

0 commit comments

Comments
 (0)