Oscar A Leiva 7 rokov pred
commit
11ccc9d3b8
6 zmenil súbory, kde vykonal 97 pridanie a 0 odobranie
  1. 0 0
      __init__.py
  2. 17 0
      app.py
  3. 13 0
      database.py
  4. 5 0
      merData_db.conf
  5. 48 0
      models.py
  6. 14 0
      requirements.txt

+ 0 - 0
__init__.py


+ 17 - 0
app.py

@@ -0,0 +1,17 @@
+#!flask/bin/python
+from flask import Flask
+from flask_restful import Api
+
+from models import *
+
+app = Flask(__name__)
+api = Api(app)
+
+api.add_resource(Demandas_Meta, '/api/v1/paises')
+api.add_resource(Demandas, '/api/v1/demandas')
+api.add_resource(Demanda_Max, '/api/v1/demandamax/<string:pais>')
+
+
+if __name__ == '__main__':
+    #mssql.init_app(app)
+    app.run(debug=True)

+ 13 - 0
database.py

@@ -0,0 +1,13 @@
+from sqlalchemy import create_engine
+from pyodbc import *
+import urllib.parse
+import configparser
+
+#Read Config file
+config = configparser.ConfigParser()
+config.read('merData_db.conf')
+
+
+db_string = 'mssql+pyodbc:///?odbc_connect=' + urllib.parse.quote('DRIVER=FreeTDS;SERVER=%s;PORT=1433;DATABASE=%s;UID=%s;PWD=%s;TDS_Version=7.3;'.format(config.get('DB','SERVER'), config.get('DB', 'DATABASE'), config.get('DB','UID'), config.get('DB','PWD')))
+
+e = create_engine('mssql+pyodbc:///?odbc_connect=' + urllib.parse.quote('DRIVER=FreeTDS;SERVER=192.168.98.45;PORT=1433;DATABASE=CAP_TABLEAU_TEST;UID=test;PWD=test;TDS_Version=7.3;'))

+ 5 - 0
merData_db.conf

@@ -0,0 +1,5 @@
+[DB]
+UID: test
+PWD: test
+DATABASE: CAP_TABLEAU_TEST
+SERVER: 192.168.98.45

+ 48 - 0
models.py

@@ -0,0 +1,48 @@
+from flask import jsonify
+from flask_restful import Resource
+from database import e
+from json import dumps
+
+class Demandas_Meta(Resource):
+    def get(self):
+        #Connect to database
+        conn = e.connect()
+        #Perform query and return JSON data
+        query = conn.execute("select distinct PAIS from GENERACION_EOR_TR")
+        result = query.cursor.fetchall()
+        data = {'paises' : [row[0] for row in result]}
+        return jsonify(data)
+
+class Demandas(Resource):
+    def get(self):
+        #Connect to database
+        conn = e.connect()
+        #Perform query and return JSON data
+        query = conn.execute("select * from DEMANDA_MER")
+        columns = query.keys()
+        data = []
+        result = query.cursor.fetchall()
+        for row in result:
+            data.append(dict(zip(columns, row)))
+        #List of Dicts to Dict of List (LD to DL)
+        v = dict(zip(data[0], zip(*[d.values() for d in data])))
+        response = jsonify({'data' : v})
+        #Response is List of Dicts (LD)
+        #response = jsonify({'data' : data})
+        return response
+
+class Demanda_Max(Resource):
+    def get(self, pais):
+        #Connect to database
+        conn = e.connect()
+        #Perform query and return JSON data
+        query = conn.execute("SELECT fecha_hora, pais, demanda FROM generacion_eor_tr WHERE \
+                            demanda = (select max(demanda) from generacion_eor_tr where pais = '{0}') \
+                            and pais = '{0}'".format(pais.upper()))
+        columns = query.keys()
+        data = []
+        result = query.cursor.fetchall()
+        for row in result:
+            data.append(dict(zip(columns, row)))
+        response = jsonify({'data' : data})
+        return response

+ 14 - 0
requirements.txt

@@ -0,0 +1,14 @@
+aniso8601==2.0.1
+click==6.7
+configparser==3.5.0
+Flask==0.12.2
+Flask-RESTful==0.3.6
+Flask-SQLAlchemy==2.3.2
+itsdangerous==0.24
+Jinja2==2.10
+MarkupSafe==1.0
+pyodbc==4.0.22
+pytz==2018.3
+six==1.11.0
+SQLAlchemy==1.2.4
+Werkzeug==0.14.1