Files
Hydro/app.py

83 lines
2.8 KiB
Python

from flask import Flask, render_template, request, flash, redirect
import datetime
from sqlalchemy import create_engine, Column, Integer, String, DateTime
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
app = Flask(__name__)
app.config['SECRET_KEY'] = 'fa6166b0218186fb852429060105aca18e0f979240be8ebf'
Base = declarative_base()
class Dates(Base):
__tablename__ = 'Dates'
id = Column(Integer, primary_key=True, autoincrement=True)
dateTypeID = Column(Integer)
dateValue = Column(String)
class DatesMetadata(Base):
__tablename__ = 'DatesMetadata'
id = Column(Integer, primary_key=True, autoincrement=True)
dateTypeID = Column(Integer)
DateTypeName = Column(String)
class Settings(Base):
__tablename__ = 'Settings'
id = Column(Integer, primary_key=True, autoincrement=True)
settingType = Column(Integer)
settingVale = Column(String)
class SettingsMetadata(Base):
__tablename__ = 'SettingsMetadata'
id = Column(Integer, primary_key=True, autoincrement=True)
settingTypeID = Column(Integer)
settingTypeName = Column(String)
engine = create_engine('sqlite:///static/db.db')
Dates.__table__.create(bind=engine, checkfirst=True)
Settings.__table__.create(bind=engine, checkfirst=True)
DatesMetadata.__table__.create(bind=engine, checkfirst=True)
SettingsMetadata.__table__.create(bind=engine, checkfirst=True)
Session = sessionmaker(bind=engine)
@app.route('/', methods=('GET', 'POST'))
@app.route('/index.html', methods=('GET', 'POST'))
def index():
session = Session()
plantdate = datetime.datetime(2022, 1,19)
last = datetime.datetime(2022, 1,19)
freq = 7
next = last + datetime.timedelta(days=freq)
alerts = {'text': False, 'email': True}
if request.method == 'POST':
plantdate = request.form['plantDate']
last = request.form['lastDate']
next = datetime.datetime.strptime(last,'%Y-%m-%d') + datetime.timedelta(days=freq)
plant = {'plant': plantdate, 'last': last, 'next': next, 'freq': freq}
return render_template("index.html", plant=plant, alerts=alerts)
else:
dates = {'plant': '', 'last': '', 'next':'', 'freq': ''}
# result = session.query(Dates).filter_by(dateTypeID=1).first()
dates['plant'] = session.query(Dates).filter_by(dateTypeID=1).first().dateValue
dates['last'] = session.query(Dates).filter_by(dateTypeID=2).first().dateValue
dates['next'] = session.query(Dates).filter_by(dateTypeID=3).first().dateValue
dates['freq'] = session.query(Dates).filter_by(dateTypeID=4).first().dateValue
print(datetime.datetime.strptime(dates['plant'], '%Y-%m-%d'))
return render_template("index.html", plant=dates, alerts=alerts)
if __name__ == '__main__':
serve(app, host='0.0.0.0', port=8000)