היי!
כחלק מהעבודה בפלאסק, אני מנסה להכניס קוד שכותבת בתוך הפעולת flask לתוך הhtml שהוצג לי. ככה זה נראה-
הבעיה שבמקום להציג לי את הקובץ movie-list עם הפרטים שהכנסתי, הקובץ שאני מכניסה במשתנה movie_list יוצא לא מעובד והתוצאה היא פשוט שהדפדפן מציג את את המחרוזת של הhtml שלי.
נראה ככה-
משהו נתקל או יודע איך אפשר לפתור את זה?
המון תודה!
orronai
האם אתה מראש מקבל את כל הפרטי סרטים בתוך תגיות html?
noam100
לא, הכנסתי את הפרטי סרטים לתוך תגיות html, עבור כל סרט יש div, שזה המבנה שלו-
יש משתנה שמחבר את כל הdiv של כל הסרטים- all_movie_details
המבנה תקין. הבעיה קורית בפעולה render template עצמה- כשאני מריצה אותה היא מציגה את הhtml כטקסט.
לצורך העניין, אם אני מנסה להחזיר div של סרט אחד הוא חוזר כמו שצריך,
וגם- אם אני שמה את התבנית של כל הסרטים בתוך הקובץ של הflask הכל עובד.
orronai
יש לך אופציה עם Jinja לרוץ בלולאה.
כשאת עושה render template, תעבירי את all_movies_details בתור מילון, רשימה או מערך נתונים אחר שתבחרי, ותוכלי ליצור כך את כל הסרטים ב-template עצמו.
דוגמה:
{% for movie in movies_details %}
{{ movie }}
{% endfor %}
noam100
לא הבנתי לגמרי איך ליצור את כל הסרטים בתוך התבנית. תוכל להבהיר?
עד עכשיו כדי ליצור את all_movie_details השתמשתי בלולאת פור שעוברת על כל הdiv של כל הסרטים ומחברת אותם.
orronai
תנסי ליצור מבנה נתונים שמחזיק את הסרטים.
לאחר מכן בלולאה בתוך ה-template עצמו (בקובץ html) לרוץ על המבנה נתונים שהעברת לו ב-render template.
דוגמה מהמערכת תרגילים:
noam100
לא הבנתי איך אפשר לרוץ על זה בrender template.
all_movie_details הוא פשוט קובץ html ענק עם רשימה של הסרטים מהחיפוש. על מה אני צריכה לעשות רנדר?
מצרפת צילום מסך לקוד שלי כרגע ולפלט שמקבלת כשמחזירה את all_movie_details.
החלק שלא עובד הוא הreturn השני- הפלט שלו מופיע בhtml כמו בצילום מסך הראשון ששלחתי.
orronai
אוקיי אז זו סיטואציה שונה ממה שהבנתי. שאלתי קודם אם המשתנה הזה מראש הוא עם תגיות html ואמרת שלא.
אז צריך לחשוב על דרך אחרת, אם יעלה לי משהו אעדכן.
אצטרך לקבל קצת יותר קוד כדי להבין איך נראה all_movie_details