s
This commit is contained in:
@@ -1,35 +1,31 @@
|
||||
from flask import Flask, render_template, request
|
||||
|
||||
import os
|
||||
# Îi spunem clar că templates este în același folder cu main.py
|
||||
template_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), 'templates'))
|
||||
app = Flask(__name__, template_folder=template_dir)
|
||||
from flask import Flask, render_template, request
|
||||
# import openai # Dezactivează comentariul când ai cheia API
|
||||
|
||||
app = Flask(__name__, template_folder='templates')
|
||||
|
||||
# Funcția care calculează caloriile (Formula Mifflin-St Jeor)
|
||||
def calculeaza_target(data):
|
||||
w = float(data.get('weight'))
|
||||
h = float(data.get('height'))
|
||||
a = int(data.get('age'))
|
||||
gen = data.get('gender')
|
||||
act = float(data.get('activity'))
|
||||
scop = data.get('goal')
|
||||
try:
|
||||
w = float(data.get('weight'))
|
||||
h = float(data.get('height'))
|
||||
a = int(data.get('age'))
|
||||
gen = data.get('gender')
|
||||
act = float(data.get('activity'))
|
||||
scop = data.get('goal')
|
||||
|
||||
# Calcul BMR (Basal Metabolic Rate)
|
||||
if gen == 'masculin':
|
||||
bmr = (10 * w) + (6.25 * h) - (5 * a) + 5
|
||||
else:
|
||||
bmr = (10 * w) + (6.25 * h) - (5 * a) - 161
|
||||
if gen == 'masculin':
|
||||
bmr = (10 * w) + (6.25 * h) - (5 * a) + 5
|
||||
else:
|
||||
bmr = (10 * w) + (6.25 * h) - (5 * a) - 161
|
||||
|
||||
# TDEE (Total Daily Energy Expenditure)
|
||||
tdee = bmr * act
|
||||
|
||||
# Ajustare în funcție de scop (slăbire/îngrășare)
|
||||
if scop == 'slabire':
|
||||
return round(tdee - 500)
|
||||
elif scop == 'ingrasare':
|
||||
return round(tdee + 500)
|
||||
else:
|
||||
tdee = bmr * act
|
||||
if scop == 'slabire':
|
||||
return round(tdee - 500)
|
||||
elif scop == 'ingrasare':
|
||||
return round(tdee + 500)
|
||||
return round(tdee)
|
||||
except:
|
||||
return 2000
|
||||
|
||||
@app.route('/')
|
||||
def index():
|
||||
@@ -37,13 +33,20 @@ def index():
|
||||
|
||||
@app.route('/calculate', methods=['POST'])
|
||||
def calculate():
|
||||
try:
|
||||
data = request.form
|
||||
kcal_final = calculeaza_target(data)
|
||||
# Trimitem rezultatul înapoi în pagina index.html
|
||||
return render_template('index.html', rezultat=kcal_final, date_introduse=data)
|
||||
except Exception as e:
|
||||
return f"A apărut o eroare: {e}", 400
|
||||
data = request.form
|
||||
kcal_final = calculeaza_target(data)
|
||||
|
||||
# Simulare AI dacă nu avem API Key configurat încă
|
||||
preferinte = data.get('preferences', 'fără preferințe')
|
||||
meniu_exemplu = f"""
|
||||
🤖 Meniu Sugerat ({kcal_final} kcal):
|
||||
- Mic dejun: Omletă cu 3 ouă și avocado.
|
||||
- Prânz: Piept de pui (200g) cu orez sălbatic.
|
||||
- Cină: Salată de ton cu măsline.
|
||||
- Preferințe procesate: {preferinte}
|
||||
"""
|
||||
|
||||
return render_template('index.html', rezultat=kcal_final, meniu_ai=meniu_exemplu)
|
||||
|
||||
if __name__ == '__main__':
|
||||
app.run(host='0.0.0.0', port=5000)
|
||||
@@ -54,9 +54,26 @@
|
||||
<h4>Ținta ta: {{ rezultat }} kcal / zi</h4>
|
||||
</div>
|
||||
<hr>
|
||||
<h5>🤖 Cere meniu de la AI (Beta)</h5>
|
||||
<textarea class="form-control mb-2" placeholder="Ex: Sunt vegetarian și nu îmi place broccoli..."></textarea>
|
||||
<button class="btn btn-outline-primary btn-sm">Generează Meniu Săptămânal</button>
|
||||
|
||||
<h5>🤖 Cere meniu de la AI</h5>
|
||||
<form action="/calculate" method="post">
|
||||
<input type="hidden" name="weight" value="{{ request.form.weight }}">
|
||||
<input type="hidden" name="height" value="{{ request.form.height }}">
|
||||
<input type="hidden" name="age" value="{{ request.form.age }}">
|
||||
<input type="hidden" name="gender" value="{{ request.form.gender }}">
|
||||
<input type="hidden" name="activity" value="{{ request.form.activity }}">
|
||||
<input type="hidden" name="goal" value="{{ request.form.goal }}">
|
||||
|
||||
<textarea name="preferences" class="form-control mb-2" placeholder="Ex: Sunt vegetarian, nu îmi place peștele..."></textarea>
|
||||
<button type="submit" class="btn btn-outline-primary btn-sm w-100">Generează Meniu Personalizat</button>
|
||||
</form>
|
||||
{% endif %}
|
||||
|
||||
{% if meniu_ai %}
|
||||
<div class="mt-4 p-3 border rounded bg-white">
|
||||
<h6 class="text-primary font-weight-bold">Meniul tău generat:</h6>
|
||||
<p style="white-space: pre-line;">{{ meniu_ai }}</p>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1 +1,2 @@
|
||||
flask
|
||||
openai==0.28.0
|
||||
Reference in New Issue
Block a user