diff --git a/main.py b/main.py index 963075f..0a0ffb0 100644 --- a/main.py +++ b/main.py @@ -1,7 +1,7 @@ """ Portfolio Project for CS361 Spring 2022 Written by Lucas Jensen -Last updated 5/12 for Assignment 1 +Last updated 10-12-2023 for deployment """ from flask import Flask, redirect, render_template, request, send_file from recipe import Recipe, RecipeBook @@ -18,7 +18,7 @@ def home(): return render_template("index.html") -@app.route('/recipes', methods=['GET']) +@app.route("/recipes", methods=["GET"]) def recipes_page(): recipes = book.get_recipes() # recipes is a dictionary of recipe objects @@ -27,54 +27,51 @@ def recipes_page(): return render_template("recipes.html", content=recipes) -@app.route('/recipes/<_id>/email', methods=['GET', 'POST']) +@app.route("/recipes/<_id>/email", methods=["GET", "POST"]) def email_page(_id): recipe = book.find_by_id(str(_id)) - if request.method == 'POST': - addr = request.form.get('email') + if request.method == "POST": + addr = request.form.get("email") subject = recipe.get_name() - message = f"{subject}; " \ - f"Num loaves: {recipe.get_num_loaves()};" + message = f"{subject}; " f"Num loaves: {recipe.get_num_loaves()};" ingredients = recipe.get_ingredients() for item in ingredients: message += f" {item}: {ingredients[item]} grams;" - body = f"$to == {addr}\n" \ - f"$subject == {subject}\n" \ - f"$message == {message}" + body = f"$to == {addr}\n" f"$subject == {subject}\n" f"$message == {message}" - with open('mail.txt', 'wt') as txt_file: + with open("mail.txt", "wt") as txt_file: txt_file.write(body) - subprocess.call(['python', 'mailer.py']) + subprocess.call(["python", "mailer.py"]) - return redirect('/recipes') + return redirect("/recipes") - return render_template('email.html', content=recipe) + return render_template("email.html", content=recipe) -@app.route('/recipes/<_id>', methods=['GET', 'POST']) +@app.route("/recipes/<_id>", methods=["GET", "POST"]) def recipe_page(_id): recipe = book.find_by_id(_id) - if request.method == 'POST': + if request.method == "POST": # user wants to scale their recipe - if 'scale' in request.form: - scale = request.form.get('scale') + if "scale" in request.form: + scale = request.form.get("scale") new = recipe.scale(scale) new_id = book.add_recipe(new) - return redirect(f'/recipes/{new_id}') - elif 'photo' in request.files: + return redirect(f"/recipes/{new_id}") + elif "photo" in request.files: # user wants to add a photo - f = request.files['photo'] - f.save(os.path.join('static', f"image_{_id}.jpg")) + f = request.files["photo"] + f.save(os.path.join("static", f"image_{_id}.jpg")) # return "Success" - elif 'convert' in request.form: + elif "convert" in request.form: # user wants to convert to sourdough new_recipe = recipe.convert() book.add_recipe(new_recipe) - return redirect('/recipes') + return redirect("/recipes") else: # user wants to download a pdf path = write_txt(_id) @@ -83,16 +80,13 @@ def recipe_page(_id): # find all associated images recipe_photos = [] - all_photos = os.listdir('static') + all_photos = os.listdir("static") for photo in all_photos: - if 'jpg' in photo: + if "jpg" in photo: if get_num(photo) == int(_id): recipe_photos.append(photo) - return render_template("recipe.html", - content=recipe, - _id=_id, - photos=recipe_photos) + return render_template("recipe.html", content=recipe, _id=_id, photos=recipe_photos) def get_num(path: str) -> int: @@ -103,7 +97,7 @@ def get_num(path: str) -> int: """ num = "" for i in range(6, len(path)): - if path[i] == '.': + if path[i] == ".": break num += path[i] @@ -116,24 +110,24 @@ def write_txt(_id): :return: """ print(_id) - with open('recipe.txt', 'w') as txt_file: + with open("recipe.txt", "w") as txt_file: txt_file.write(_id) return f"recipe{_id}.pdf" -@app.route('/recipes/<_id>/delete') +@app.route("/recipes/<_id>/delete") def delete_recipe(_id): book.find_and_delete(_id) return redirect("/recipes") -@app.route('/add', methods=['GET', 'POST']) +@app.route("/add", methods=["GET", "POST"]) def add_recipe(): if request.method == "POST": - new_recipe = Recipe(request.form.get('name'), request.form.get('yield')) + new_recipe = Recipe(request.form.get("name"), request.form.get("yield")) for item in request.form: - if item not in ['name', 'yield']: + if item not in ["name", "yield"]: new_recipe.add_ingredient(item, int(request.form.get(item))) book.add_recipe(new_recipe) diff --git a/wsgi.py b/wsgi.py new file mode 100644 index 0000000..e737729 --- /dev/null +++ b/wsgi.py @@ -0,0 +1,6 @@ +from main import app + +if __name__ == "__main__": + app.run() + +# gunicorn --bind 0.0.0.0:5001 wsgi:app