from flask import Flask, render_template, make_response, request, redirect, url_for from pprint import pprint import sqlite3 import os.path DBNAME = "list.db" MOBILES = ["android", "iphone", "blackberry"] 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":"Shopping List", "results":query} for device in MOBILES: if device in request.user_agent.platform: return render_template('mobile.html', data=data) 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()