Skip to content

Commit

Permalink
switch from flask to fastapi
Browse files Browse the repository at this point in the history
  • Loading branch information
salivian committed Sep 17, 2020
1 parent 9918d2e commit 8cc1253
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 32 deletions.
Binary file modified data/crime50k.csv.gz
Binary file not shown.
3 changes: 3 additions & 0 deletions docker-app/run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,8 @@ ln -s /data/config.json /www
#start webserver
nginx -c /app/nginx.conf

#start db rest server
#uvicorn /app/db_rest_server:app --port 54322

#start nanocubes server with all the nanocube files
/nanocube/bin/nanocube serve 54321 nc=`ls -1 /data/*.nanocube|paste -sd ':'`
49 changes: 17 additions & 32 deletions web/bin/db_rest_server.py
Original file line number Diff line number Diff line change
@@ -1,41 +1,26 @@
from flask import Flask,request,make_response
from flask_cors import cross_origin
app = Flask(__name__)
from fastapi import FastAPI, Form
from fastapi.responses import Response
from fastapi.middleware.cors import CORSMiddleware

import pandas as pd
from sqlalchemy import create_engine
engine = create_engine('sqlite:////crime.db')
engine = create_engine('sqlite:///./crimes50k.db')

app = FastAPI()
app.add_middleware(CORSMiddleware,allow_origins=['*'])

@app.route('/')
@app.get('/')
def hello_world():
return 'Hello, World!'
return {'msg':'Hello, World!'}

import json

@app.route('/data',methods=['POST'])
@cross_origin()
def data():
if request.method == 'POST':
q = request.form['q']
format = request.form['format']
resp = make_response()
print(q)

data=pd.read_sql(q,engine).replace(to_replace=float('nan'),value=None)
mime=''

if format=='json':
data = json.dumps(data.to_dict(orient='records'))
mime = 'text/json'
@app.post('/data')
def data(q:str=Form(...),format:str=Form(...)):
print(q)

if format=='csv':
data = data.to_csv(index=False)
mime = 'text/csv'

resp.data=data
resp.mimetype=mime
data=pd.read_sql(q,engine).replace(to_replace=float('nan'),value=None)

return resp
else:
return ''
if format=='json':
return data.to_dict(orient='records')

if format=='csv':
return Response(content=data.to_csv(index=False),media_type='text/csv')

0 comments on commit 8cc1253

Please sign in to comment.