init
This commit is contained in:
105
app.py
Normal file
105
app.py
Normal file
@@ -0,0 +1,105 @@
|
||||
from flask import Flask, render_template, request, redirect, session, jsonify
|
||||
import sqlite3
|
||||
|
||||
app = Flask(__name__)
|
||||
app.secret_key = "supersecretkey"
|
||||
|
||||
DB = "database.db"
|
||||
|
||||
# ---------------- DATABASE ----------------
|
||||
def get_db():
|
||||
conn = sqlite3.connect(DB)
|
||||
conn.row_factory = sqlite3.Row
|
||||
return conn
|
||||
|
||||
def init_db():
|
||||
conn = get_db()
|
||||
conn.execute('''
|
||||
CREATE TABLE IF NOT EXISTS toner (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
name TEXT NOT NULL,
|
||||
quantity INTEGER NOT NULL
|
||||
)
|
||||
''')
|
||||
conn.execute('''
|
||||
CREATE TABLE IF NOT EXISTS users (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
username TEXT,
|
||||
password TEXT
|
||||
)
|
||||
''')
|
||||
conn.commit()
|
||||
|
||||
# ---------------- ROUTES ----------------
|
||||
|
||||
@app.route("/")
|
||||
def index():
|
||||
return render_template("index.html")
|
||||
|
||||
@app.route("/api/toner")
|
||||
def get_toner():
|
||||
conn = get_db()
|
||||
toner = conn.execute("SELECT * FROM toner").fetchall()
|
||||
return jsonify([dict(row) for row in toner])
|
||||
|
||||
@app.route("/login", methods=["GET", "POST"])
|
||||
def login():
|
||||
if request.method == "POST":
|
||||
user = request.form["username"]
|
||||
pw = request.form["password"]
|
||||
|
||||
conn = get_db()
|
||||
result = conn.execute(
|
||||
"SELECT * FROM users WHERE username=? AND password=?",
|
||||
(user, pw)
|
||||
).fetchone()
|
||||
|
||||
if result:
|
||||
session["user"] = user
|
||||
return redirect("/admin")
|
||||
|
||||
return render_template("login.html")
|
||||
|
||||
@app.route("/admin")
|
||||
def admin():
|
||||
if "user" not in session:
|
||||
return redirect("/login")
|
||||
return render_template("admin.html")
|
||||
|
||||
@app.route("/api/add", methods=["POST"])
|
||||
def add_item():
|
||||
if "user" not in session:
|
||||
return "Unauthorized", 401
|
||||
|
||||
data = request.json
|
||||
conn = get_db()
|
||||
conn.execute(
|
||||
"INSERT INTO toner (name, quantity) VALUES (?, ?)",
|
||||
(data["name"], data["quantity"])
|
||||
)
|
||||
conn.commit()
|
||||
return "OK"
|
||||
|
||||
@app.route("/api/update", methods=["POST"])
|
||||
def update_item():
|
||||
if "user" not in session:
|
||||
return "Unauthorized", 401
|
||||
|
||||
data = request.json
|
||||
conn = get_db()
|
||||
conn.execute(
|
||||
"UPDATE toner SET quantity=? WHERE id=?",
|
||||
(data["quantity"], data["id"])
|
||||
)
|
||||
conn.commit()
|
||||
return "OK"
|
||||
|
||||
@app.route("/logout")
|
||||
def logout():
|
||||
session.clear()
|
||||
return redirect("/")
|
||||
|
||||
# ---------------- RUN ----------------
|
||||
if __name__ == "__main__":
|
||||
init_db()
|
||||
app.run(debug=True)
|
||||
Reference in New Issue
Block a user