final
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
from flask import Flask, render_template, request
|
||||
import math
|
||||
from profiles import profiles
|
||||
|
||||
app = Flask(__name__)
|
||||
|
||||
# --- Matching logic (server-side copy, used for initial render only) ---
|
||||
def euclidean_distance(a, b):
|
||||
return math.sqrt(sum((x - y) ** 2 for x, y in zip(a, b)))
|
||||
|
||||
@app.route("/")
|
||||
def index():
|
||||
return render_template("about.html")
|
||||
|
||||
@app.route("/inactive")
|
||||
def inactive():
|
||||
# Default user values (all 20). Client-side UI will live-update from there.
|
||||
user_values = [20, 20, 20, 20, 20, 20]
|
||||
sorted_matches = sorted(
|
||||
profiles.items(), key=lambda p: euclidean_distance(user_values, p[1]['values'])
|
||||
)
|
||||
top_matches = sorted_matches[:3]
|
||||
|
||||
return render_template(
|
||||
"inactive.html",
|
||||
user=user_values,
|
||||
top_matches=top_matches,
|
||||
profiles=profiles,
|
||||
)
|
||||
|
||||
@app.route("/profiles")
|
||||
def profiles_page():
|
||||
return render_template("profiles.html", profiles=profiles)
|
||||
|
||||
@app.route("/quiz", methods=["GET", "POST"])
|
||||
def quiz():
|
||||
if request.method == "POST":
|
||||
user_values = [
|
||||
int(request.form.get(f"point{i}", 20)) for i in range(1, 7)
|
||||
]
|
||||
sorted_matches = sorted(
|
||||
profiles.items(),
|
||||
key=lambda p: euclidean_distance(user_values, p[1]['values'])
|
||||
)
|
||||
top_matches = sorted_matches[:3]
|
||||
return render_template("result.html",
|
||||
user=user_values,
|
||||
top_matches=top_matches,
|
||||
profiles=profiles)
|
||||
return render_template("quiz.html", profiles=profiles)
|
||||
|
||||
@app.route("/result")
|
||||
def result():
|
||||
return render_template("result.html", profiles=profiles)
|
||||
|
||||
if __name__ == "__main__":
|
||||
app.run(host='localhost', port=1337, debug=False)
|
||||
Reference in New Issue
Block a user