| 123456789101112131415161718192021222324252627282930313233343536373839 |
- from flask import Flask, render_template, jsonify
- from datetime import datetime
- from sqlalchemy import create_engine,func
- from sqlalchemy.orm import sessionmaker
- from Coin import Coin, CoinMarketPosition
- app = Flask(__name__)
- engine = create_engine('sqlite:///coins.db', echo=False, connect_args={'check_same_thread':False})
- # create a Session
- Session = sessionmaker(bind=engine)
- session = Session()
- def result50(date=datetime.now()):
- result = []
- for x in session.query(CoinMarketPosition,Coin).filter(func.Date(CoinMarketPosition.date) == date.date()).distinct(Coin.id).join(Coin).order_by(CoinMarketPosition.market_caps.desc()).limit(50).all():
- result.append((x[1].symbol, x[0].market_caps))
- return result
-
- @app.route("/")
- @app.route('/top50async/<date>/')
- def top50async(date="2020-01-12"):
- return render_template('async_list.html', date=date)
- @app.route('/top50json/<date>/')
- def top50json(date):
- d = datetime.strptime(date, "%d-%m-%Y")
- results = result50(d)
- arr = [{'name':x[0],'marketCap':x[1]} for x in results]
- return jsonify(arr)
- @app.route('/coin/<id>/')
- def coinHistory(id):
- results = session.query(CoinMarketPosition).filter(CoinMarketPosition.coin_id==id).all()
- return jsonify([ {'date':marketPos.date,'marketCap':marketPos.market_caps} for marketPos in results])
- if __name__ == '__main__':
- app.run(debug=True)
|