New to flask. My code is displaying raw HTML code when I run it on local host, however I'd like to render an HTML form. What am I doing wrong?
This is my base directory for my project. /Users/davidooooo/res_recs
This is my HTML which is inside my templates folder.
<!DOCTYPE html>
<html>
<head>
<title>Restaurant Meal Recommender</title>
</head>
<body>
<h1>Restaurant Meal Recommender</h1>
<form method="post">
<label for="likes">Foods you like:</label><br>
<input type="text" name="likes"><br>
<label for="dislikes">Foods you dislike:</label><br>
<input type="text" name="dislikes"><br>
<label for="restaurant">Restaurant name:</label><br>
<input type="text" name="restaurant"><br>
<label for="menu">Menu description:</label><br>
<input type="text" name="menu"><br>
<input type="submit" value="Get Recommendations">
</form>
{% if recommendation %}
<h2>Recommendation:</h2>
<p>{{ recommendation }}</p>
{% endif %}
</body>
</html>
This is my app.py (I'm ommitting the long getRecs function (it calls openAI's API))
from flask import Flask, render_template, request, url_for, redirect
import os
import openai
#%%
app = Flask(__name__, template_folder='/Users/davidooooo/res_recs/templates')
#%% Your OpenAI API key
api_key = os.getenv("OPENAI_API_KEY")
@app.route("/", methods=("GET", "POST"))
def index():
if request.method == "POST":
likes = request.form.get("likes")
dislikes = request.form.get("dislikes")
restaurant = request.form.get("restaurant")
menu = request.form.get("menu")
recommendation = getRecs(likes, dislikes, restaurant, menu)
return redirect(url_for("recommendation_page", recommendation=recommendation))
return render_template("index.html", recommendation=None)
#return("Hello world")
if __name__ == "__main__":
app.run(debug=False)