Yasu777's picture
Update app.py
04bacfa
import streamlit as st
from tinydb import TinyDB, Query
# ใƒ‡ใƒผใ‚ฟใƒ™ใƒผใ‚นใฎๅˆๆœŸๅŒ–
db = TinyDB('db.json')
# ใ‚ฟใ‚คใƒˆใƒซ
st.title("ๆ–™็†ใฎๆๆ–™็ฎก็†ใ‚ขใƒ—ใƒช")
# ๆ–™็†ๅใ€ๆๆ–™ใ€ๅ€‹ๆ•ฐใฎๅ…ฅๅŠ›
recipe_name = st.text_input("ๆ–™็†ๅ")
ingredient_name = st.text_input("ๆๆ–™ๅ")
ingredient_amount = st.text_input("ๅ€‹ๆ•ฐ")
# ็™ป้Œฒใƒœใ‚ฟใƒณ
if st.button("็™ป้Œฒ"):
# ใƒ‡ใƒผใ‚ฟใƒ™ใƒผใ‚นใซไฟๅญ˜
db.insert({"recipe_name": recipe_name, "ingredient_name": ingredient_name, "ingredient_amount": ingredient_amount})
st.success("็™ป้Œฒใ—ใพใ—ใŸ")
# ๆ–™็†ๅใฎไธ€่ฆง่กจ็คบ
recipe_names = sorted(set([item["recipe_name"] for item in db.all()]))
selected_recipe = st.selectbox("ๆ–™็†ๅ", recipe_names)
# ้ธๆŠžใ—ใŸๆ–™็†ใฎๆๆ–™ใจๅ€‹ๆ•ฐใ‚’่กจ็คบ
ingredients = [item for item in db.all() if item["recipe_name"] == selected_recipe]
for ingredient in ingredients:
st.write(f"{ingredient['ingredient_name']} : {ingredient['ingredient_amount']}")
# ๆๆ–™ใƒใ‚งใƒƒใ‚ฏๆฉŸ่ƒฝ
with st.form(key="ingredient_check_form"):
checked_ingredients = []
for ingredient in ingredients:
checked = st.checkbox(ingredient["ingredient_name"])
if checked:
checked_ingredients.append(ingredient)
# ๆœชใƒใ‚งใƒƒใ‚ฏใฎๆๆ–™ใ‚’ๅ–ๅพ—
unchecked_ingredients = [ingredient for ingredient in ingredients if ingredient not in checked_ingredients]
# ๅ…จใฆใƒใ‚งใƒƒใ‚ฏใ•ใ‚ŒใŸๅ ดๅˆ
if st.form_submit_button("้€ไฟก"):
if len(checked_ingredients) == len(ingredients):
st.write("ๆบ–ๅ‚™ใ‚ชใƒƒใ‚ฑใƒผ๏ผ")
else:
st.write("ใพใ ๆบ–ๅ‚™ใงใใฆใชใ„ใ‚ˆ๏ผ")
for ingredient in unchecked_ingredients:
st.write(ingredient["ingredient_name"])