Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from flask import Flask
- from flask_cors import CORS
- from flask import jsonify
- from flask_mysqldb import MySQL
- from flask import request
- from flask import Response
- from datetime import datetime
- import json
- app = Flask(__name__)
- CORS(app)
- app.config['MYSQL_HOST'] = 'acholewa.mysql.pythonanywhere-services.com'
- app.config['MYSQL_USER'] = 'acholewa'
- app.config['MYSQL_PASSWORD'] = 'password123'
- app.config['MYSQL_DB'] = 'acholewa$dev'
- mysql = MySQL(app)
- @app.after_request
- def after_request(response):
- response.headers.add('Access-Control-Allow-Origin', '*')
- response.headers.add('Access-Control-Allow-Headers', 'Content-Type,Authorization')
- response.headers.add('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS')
- return response
- @app.route('/status', methods=['GET'])
- def status():
- return Response('{"status": "OK"}',status=200,mimetype='application/json')
- @app.route('/measurements', methods=['GET','POST'])
- def measurements():
- cur = mysql.connection.cursor()
- if request.method == 'POST':
- data = json.loads(request.data)
- 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())])
- mysql.connection.commit()
- return Response(status=201)
- if request.method == 'GET':
- cur.execute("SELECT * FROM measurements")
- data=[]
- result_set = cur.fetchall()
- for row in result_set:
- data.append({'id': row[0],'device_id': row[1],'temperature': row[2],'humidity': row[3],'measurement_date': row[4]})
- return jsonify(data=data)
- @app.route('/measurements/<date>', methods=['GET'])
- def measurementsByDate(date):
- cur = mysql.connection.cursor()
- cur.execute("SELECT * FROM measurements WHERE DATE(measurement_date) = %s;",[date])
- data=[]
- result_set = cur.fetchall()
- for row in result_set:
- data.append({'id': row[0],'device_id': row[1],'temperature': row[2],'humidity': row[3],'measurement_date': row[4]})
- return jsonify(data=data)
- @app.route('/fans/<id>/mode/<mode>', methods=['GET'])
- def fanChangeMode(id, mode):
- cur = mysql.connection.cursor()
- cur.execute("UPDATE fans SET mode = %s WHERE id = %s;", [mode, id])
- mysql.connection.commit()
- return Response('{"status": "OK"}',status=200,mimetype='application/json')
- @app.route('/fans/<id>/is_on/<is_on>', methods=['GET'])
- def fanTurnOnOff(id, is_on):
- cur = mysql.connection.cursor()
- cur.execute("UPDATE fans SET is_on = %s WHERE id = %s;", [is_on, id])
- mysql.connection.commit()
- return Response('{"status": "OK"}',status=200,mimetype='application/json')
- @app.route('/fans/<id>', methods=['GET'])
- def fanInfo(id):
- cur = mysql.connection.cursor()
- cur.execute("SELECT * FROM fans WHERE id = %s;",[id])
- data={}
- result_set = cur.fetchall()
- for row in result_set:
- data = {'id': row[0],'device_id': row[1],'mode': row[2],'isOn': row[3]}
- return jsonify(data=data)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement