Files
CS361-Portfolio-Project/main.py
2022-04-29 17:11:38 -07:00

62 lines
1.6 KiB
Python

"""
Portfolio Project for CS361 Spring 2022
Written by Lucas Jensen
Last updated 3/29/22 for Assignment 1
"""
from flask import Flask, redirect, render_template, request
from recipe import Recipe, RecipeBook
app = Flask(__name__)
@app.route("/")
def home():
return render_template("index.html")
@app.route('/recipes', methods=['GET'])
def recipes_page():
recipes = book.get_recipes()
# recipes is a dictionary of recipe objects
if recipes == {}:
return render_template("empty.html")
return render_template("recipes.html", content=recipes)
@app.route('/recipes/<_id>', methods=['GET', 'POST'])
def recipe_page(_id):
recipe = book.find_by_id(_id)
if request.method == 'POST':
scale = request.form.get('scale')
new = recipe.scale(scale)
new_id = book.add_recipe(new)
return redirect(f'/recipes/{new_id}')
return render_template("recipe.html", content=recipe, _id=_id)
@app.route('/recipes/<_id>/delete')
def delete_recipe(_id):
book.find_and_delete(_id)
return redirect("/recipes")
@app.route('/add', methods=['GET', 'POST'])
def add_recipe():
if request.method == "POST":
new_recipe = Recipe(request.form.get('name'), request.form.get('yield'))
for item in request.form:
if item not in ['name', 'yield']:
new_recipe.add_ingredient(item, int(request.form.get(item)))
book.add_recipe(new_recipe)
return redirect("/recipes")
return render_template("new.html")
if __name__ == "__main__":
book = RecipeBook()
app.run(debug=False)