from flask import Flask, request, render_template, redirect, url_for from time import strftime import datetime import pendulum from dotenv import dotenv_values import influxdb_client from influxdb_client.client.write_api import SYNCHRONOUS config = dotenv_values(".env") print(config) app = Flask(__name__) def db_main(host='localhost', port=8086): user = 'root' password = 'root' dbname = 'gas' @app.route('/success') def success(): return "Form success!" @app.route('/', methods=['GET', 'POST']) def main_page(): client = influxdb_client.InfluxDBClient( url=config['DB_URL'], token=config['DB_TOKEN'], org=config['DB_ORG'] ) #query = 'select TOP(odometer, 5) from odyssey' #data = client.query(query) data = [] return render_template('index.html', data=data) @app.route('/add_time', methods=['POST', 'GET']) def add_time(): today = strftime("%Y-%m-%d") now = strftime("%H:%M:%S") # database = request.form['db'] # table = request.form['table'] date = request.form['date'] if date == '': date = today time = request.form['time'] if time == '': time = now odometer = request.form['odometer'] oilhealth= request.form['oilhealth'] if oilhealth != '': oilhealth = float(oilhealth) fuel = request.form['fuel'] if fuel != '': fuel = float(fuel) fuelcost = request.form['fuelcost'] if fuelcost != '': fuelcost = float(fuelcost) winter = request.form['winter'] if winter == 'TRUE': winter = True else: winter = False json_body = [ { "time": date + "T" + time + "Z", "measurement": "odyssey", "fields": { "odometer": float(odometer), "oilhealth": oilhealth, "fuel": fuel, "fuelcost": fuelcost, "winter": winter } } ] timestamp = date + "T" + time + "Z" dt = pendulum.parse(timestamp) print() print(dt) print() client = influxdb_client.InfluxDBClient( url=config['DB_URL'], token=config['DB_TOKEN'], org=config['DB_ORG'] ) write_api = client.write_api(write_options=SYNCHRONOUS) p = influxdb_client.Point("2016_odyssey").time(timestamp).field("odometer", float(odometer)) write_api.write(bucket="gas", org=config['DB_ORG'], record=p) print ("Submitting data to DB: {0}".format(json_body)) client.write_points(json_body) return redirect(url_for('main_page')) @app.route('/admin') def admin_index(): return 'admin' @app.route('/login') def login(): pass @app.route('/logout') def logout(): pass if __name__ == '__main__': app.run(debug=True, host='0.0.0.0')