Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -767,13 +767,13 @@ with gr.Blocks(
|
|
767 |
)
|
768 |
cuisine_dropdown = gr.Dropdown(
|
769 |
label="요리 종류",
|
770 |
-
choices=["전체"]
|
771 |
value="전체",
|
772 |
scale=1
|
773 |
)
|
774 |
award_dropdown = gr.Dropdown(
|
775 |
label="미쉐린 등급",
|
776 |
-
choices=["전체"]
|
777 |
value="전체",
|
778 |
scale=1
|
779 |
)
|
@@ -781,28 +781,53 @@ with gr.Blocks(
|
|
781 |
|
782 |
result_table = gr.Dataframe(
|
783 |
headers=["Name", "Address", "Location", "Price", "Cuisine", "Award", "Description"],
|
784 |
-
|
785 |
-
|
786 |
-
|
787 |
)
|
788 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
789 |
def search_restaurants(search_term, cuisine, award):
|
790 |
-
|
791 |
-
|
792 |
-
|
793 |
-
|
794 |
-
|
795 |
-
|
796 |
-
|
797 |
-
|
798 |
-
|
799 |
-
|
800 |
-
|
801 |
-
|
802 |
-
|
803 |
-
])
|
804 |
-
|
805 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
806 |
|
807 |
search_button.click(
|
808 |
search_restaurants,
|
|
|
767 |
)
|
768 |
cuisine_dropdown = gr.Dropdown(
|
769 |
label="요리 종류",
|
770 |
+
choices=["전체"], # find.csv 파일 존재 시 동적으로 업데이트
|
771 |
value="전체",
|
772 |
scale=1
|
773 |
)
|
774 |
award_dropdown = gr.Dropdown(
|
775 |
label="미쉐린 등급",
|
776 |
+
choices=["전체"], # find.csv 파일 존재 시 동적으로 업데이트
|
777 |
value="전체",
|
778 |
scale=1
|
779 |
)
|
|
|
781 |
|
782 |
result_table = gr.Dataframe(
|
783 |
headers=["Name", "Address", "Location", "Price", "Cuisine", "Award", "Description"],
|
784 |
+
wrap=True,
|
785 |
+
max_rows=10,
|
786 |
+
interactive=False
|
787 |
)
|
788 |
|
789 |
+
def init_dropdowns():
|
790 |
+
try:
|
791 |
+
with open('find.csv', 'r', encoding='utf-8') as f:
|
792 |
+
reader = csv.DictReader(f)
|
793 |
+
restaurants = list(reader)
|
794 |
+
cuisines = ["전체"] + sorted(set(r['Cuisine'] for r in restaurants if r['Cuisine']))
|
795 |
+
awards = ["전체"] + sorted(set(r['Award'] for r in restaurants if r['Award']))
|
796 |
+
return cuisines, awards
|
797 |
+
except FileNotFoundError:
|
798 |
+
print("Warning: find.csv file not found")
|
799 |
+
return ["전체"], ["전체"]
|
800 |
+
|
801 |
def search_restaurants(search_term, cuisine, award):
|
802 |
+
try:
|
803 |
+
with open('find.csv', 'r', encoding='utf-8') as f:
|
804 |
+
reader = csv.DictReader(f)
|
805 |
+
restaurants = list(reader)
|
806 |
+
|
807 |
+
filtered = []
|
808 |
+
search_term = search_term.lower() if search_term else ""
|
809 |
+
|
810 |
+
for r in restaurants:
|
811 |
+
if search_term == "" or \
|
812 |
+
search_term in r['Name'].lower() or \
|
813 |
+
search_term in r['Address'].lower() or \
|
814 |
+
search_term in r['Description'].lower():
|
815 |
+
if (cuisine == "전체" or r['Cuisine'] == cuisine) and \
|
816 |
+
(award == "전체" or r['Award'] == award):
|
817 |
+
filtered.append([
|
818 |
+
r['Name'], r['Address'], r['Location'],
|
819 |
+
r['Price'], r['Cuisine'], r['Award'],
|
820 |
+
r['Description']
|
821 |
+
])
|
822 |
+
|
823 |
+
return filtered[:10] # 최대 10개 결과만 반환
|
824 |
+
except FileNotFoundError:
|
825 |
+
return [["파일을 찾을 수 없습니다", "", "", "", "", "", "find.csv 파일을 확인해주세요"]]
|
826 |
+
|
827 |
+
# 드롭다운 초기화
|
828 |
+
cuisines, awards = init_dropdowns()
|
829 |
+
cuisine_dropdown.choices = cuisines
|
830 |
+
award_dropdown.choices = awards
|
831 |
|
832 |
search_button.click(
|
833 |
search_restaurants,
|