shoplist2/shop.py
2020-01-22 03:06:20 +11:00

87 lines
2.2 KiB
Python

from flask import Flask, render_template, make_response, request, redirect, url_for
from pprint import pprint
import sqlite3
import os.path
DBNAME = "list.db"
def doesDBExist(DBNAME):
try:
if not os.path.isfile(DBNAME):
conn = sqlite3.connect(DBNAME)
conn.cursor().execute('''CREATE TABLE SHOPLIST (item text, cost real, gotten integer, requester text)''')
conn.close()
except:
return False
return True
def readFromDB():
conn = sqlite3.connect(DBNAME)
results = conn.cursor().execute('''select rowid,* from shoplist''').fetchall()
conn.close()
return results
def findByName(name):
conn = sqlite3.connect(DBNAME)
query = '''select * from shoplist where requester like ''' + name
results = conn.cursor().execute(query).findall()
conn.close()
return results
def insertToDB(data):
query = f"INSERT INTO SHOPLIST VALUES (\"{data['item']}\", 0, 0, \"{data['name']}\")"
print(query)
conn = sqlite3.connect(DBNAME)
c = conn.cursor()
c.execute(query)
conn.commit()
conn.close()
def deleteRow(rowID):
query = f"DELETE FROM SHOPLIST WHERE ROWID = {rowID}"
conn = sqlite3.connect(DBNAME)
c = conn.cursor()
c.execute(query)
conn.commit()
conn.close()
def getItem(rowID):
query = f"UPDATE shoplist set gotten = 1 where rowid = {rowID}"
conn = sqlite3.connect(DBNAME)
c = conn.cursor()
c.execute(query)
conn.commit()
conn.close()
app = Flask(__name__)
app.config["DEBUG"] = True
@app.route('/')
def index():
query = readFromDB()
data = {"title":"Cart", "results":query}
return render_template('index.html', data=data)
@app.route('/post', methods=['POST'])
def handle_data():
pprint(request.form)
if "addValue" in request.form:
for x in request.form:
# print(x)
if request.form[x] == '':
return redirect(url_for('index'))
insertToDB(request.form)
if "rem" in request.form:
print(request.form["rem"])
deleteRow(request.form["rem"])
if "got" in request.form:
getItem(request.form["got"])
return redirect(url_for('index'))
if __name__ == '__main__':
doesDBExist(DBNAME)
app.run(host="0.0.0.0")