Advertisement
Guest User

Untitled

a guest
Feb 21st, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.05 KB | None | 0 0
  1. from flask import Flask
  2. from flask_cors import CORS
  3. from flask import jsonify
  4. from flask_mysqldb  import MySQL
  5. from flask import request
  6. from flask import Response
  7. from datetime import datetime
  8. import json
  9.  
  10.  
  11. app = Flask(__name__)
  12. CORS(app)
  13. app.config['MYSQL_HOST'] = 'acholewa.mysql.pythonanywhere-services.com'
  14. app.config['MYSQL_USER'] = 'acholewa'
  15. app.config['MYSQL_PASSWORD'] = 'password123'
  16. app.config['MYSQL_DB'] = 'acholewa$dev'
  17. mysql = MySQL(app)
  18.  
  19.  
  20. @app.after_request
  21. def after_request(response):
  22.   response.headers.add('Access-Control-Allow-Origin', '*')
  23.   response.headers.add('Access-Control-Allow-Headers', 'Content-Type,Authorization')
  24.   response.headers.add('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS')
  25.   return response
  26.  
  27.  
  28. @app.route('/status', methods=['GET'])
  29. def status():
  30.     return Response('{"status": "OK"}',status=200,mimetype='application/json')
  31.  
  32.  
  33. @app.route('/measurements', methods=['GET','POST'])
  34. def measurements():
  35.     cur = mysql.connection.cursor()
  36.     if request.method == 'POST':
  37.         data = json.loads(request.data)
  38.         cur.execute("INSERT INTO measurements (device_id, temperature, humidity, measurement_date) VALUES (%s, %s, %s, %s);", [int(data['d_id']), int(data['t']), int(data['h']), str(datetime.now())])
  39.         mysql.connection.commit()
  40.         return Response(status=201)
  41.     if request.method == 'GET':
  42.         cur.execute("SELECT * FROM measurements")
  43.         data=[]
  44.         result_set = cur.fetchall()
  45.         for row in result_set:
  46.             data.append({'id': row[0],'device_id': row[1],'temperature': row[2],'humidity': row[3],'measurement_date': row[4]})
  47.         return jsonify(data=data)
  48.  
  49.  
  50. @app.route('/measurements/<date>', methods=['GET'])
  51. def measurementsByDate(date):
  52.     cur = mysql.connection.cursor()
  53.     cur.execute("SELECT * FROM measurements WHERE DATE(measurement_date) = %s;",[date])
  54.     data=[]
  55.     result_set = cur.fetchall()
  56.     for row in result_set:
  57.         data.append({'id': row[0],'device_id': row[1],'temperature': row[2],'humidity': row[3],'measurement_date': row[4]})
  58.     return jsonify(data=data)
  59.  
  60.  
  61. @app.route('/fans/<id>/mode/<mode>', methods=['GET'])
  62. def fanChangeMode(id, mode):
  63.     cur = mysql.connection.cursor()
  64.     cur.execute("UPDATE fans SET mode = %s WHERE id = %s;", [mode, id])
  65.     mysql.connection.commit()
  66.     return Response('{"status": "OK"}',status=200,mimetype='application/json')
  67.  
  68.  
  69. @app.route('/fans/<id>/is_on/<is_on>', methods=['GET'])
  70. def fanTurnOnOff(id, is_on):
  71.     cur = mysql.connection.cursor()
  72.     cur.execute("UPDATE fans SET is_on = %s WHERE id = %s;", [is_on, id])
  73.     mysql.connection.commit()
  74.     return Response('{"status": "OK"}',status=200,mimetype='application/json')
  75.  
  76.  
  77. @app.route('/fans/<id>', methods=['GET'])
  78. def fanInfo(id):
  79.     cur = mysql.connection.cursor()
  80.     cur.execute("SELECT * FROM fans WHERE id = %s;",[id])
  81.     data={}
  82.     result_set = cur.fetchall()
  83.     for row in result_set:
  84.         data = {'id': row[0],'device_id': row[1],'mode': row[2],'isOn': row[3]}
  85.     return jsonify(data=data)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement