עזרה במימוש הסקריפט + הצילו

לצערי לא עמדתי בזמן ואני במירוץ הסופי לתרגיל ההשלמה, שאני בספק שאעמוד בו, מאכזב שאחרי קרוב לשנה לא אקבל בסוף את התעודה אבל כנראה שאני לא מספיק זריז.

בכל אופן, אני מנסה לממש סקריפט שיחלק תוצאות לכמה עמודים ממוספרים.
את כל החלק של המספור והחלוקה כבר בניתי אבל אני מסבך להעביר את הנתונים מהמסד אל הסקריפט כדי שיעבוד כמו שצריך.

עשיתי fetch ואני מקבל ממנו את הנתונים בצורת רשימה של json (כל json מייצג פוסט), ניסיתי לשחק עם item.json(), ניסיתי גם את JSON.parse(item) אבל שניהם לא משתפים פעולה, הפונקציה שאני משתמש בה נעזרת ב LIST.slice(start, end) כדי לפצל את ה json לצ’אנקים של רשימה, אבל לא משנה מה אני עושה אני מקבל את ההתראה uncaught TypeError: items.slice is not a function.

בגדול מה שאני מנסה להשיג, ממצב של:
"[{'id':1, 'name': 'yossi'}, {'id': 2, 'name': dani'}]"
לקבל אותו דבר רק לאבד את הסוגריים:
[{'id':1, 'name': 'yossi'}, {'id': 2, 'name': dani'}]

דבר נוסף, לצערי עדיין לא התחלתי בכלל את המעבר ל postgre ולהירוקו, אני מבין שזו המון עבודה של הבנה ולכן לכל מי שיש טיפים / סרטונים קצרים וברורים / זמן לעזור לי אני חייב את זה, אני בינתיים מדלג על הסקריפט בתקווה שמישהו פה יצליח לעזור לי וכדי להתחיל לרוץ על המעבר אבל הזמן שלי קצר ואני מתחיל לפחד שהסיכוי שלי קלוש…

  • חשוב לציין אני משתמש ב sqlalchemy (ולא flask-sqlalchemy)

תודה!

ממשיך לנסות את העזרה שלכם למרות שלא נראה לי שיש פה כל כך מי:

אני במצב כזה, הסקריפט מקבל רשימה של json-ים אבל לא משנה מה אני מנסה לעשות, כשאני מנסה להריץ את הפעולה array.slice(start, end) הוא נותן לי שגיאה Uncaught TypeError: items.slice is not a function
אין פוסט באינטרנט שלא קראתי כבר, אני יומיים וחצי רק תקוע על הסקריפט הזה ושום דבר לא מסדר את זה.

יש מישהו שמבין ויודע לעזור בזה??

מה ה-TYPE של array?
מה הפונקציות של ה-TYPE המדובר.

זה בדיוק מה שאני לא מצליח להבין כי מופיע לי שמדובר בarray אבל (רשימה של json-ים) אבל הפונקציה לא עובדת

עריכה:
בבדיקה שניה אני כבר לא בטוח בכלום…
מצד אחד מופיע לי array מצד שני רשום לי תחת כל אובייט בתוך הarray שהוא obj.
ככה או ככה לא משנה מה אני עושה הפעולה slice לא עובדת ואני לא מצליח למצוא משהו שיעקוף אותה

מצטער שלא עניתי תוך 5 שעות, ניתן לפתוח טיקט לשירות הלקוחות שלנו ויחזירו לך את כספך.

תוכל לשתף בבקשה את הפונקציה שלך ואת מה היא מחזירה בדיוק?

2 לייקים

יכול להיות שעשית IMPORT כלשהו שמכיל array?
יכול להיות ש-array הוא שם בלבד?

נ.ב.
כמו ש- @Yam כתב…
זה פורום, לא אפליקציה למסרים מידיים.

אני לא מצפה מענה תוך 5 דקות אבל לחכות קרוב לחצי יום לתגובה כשהדדליין שלך למחר גם לעוזר, במיוחד שים כל הזמן אומר תשאלו שאלות ותפתחו דיונים אבל אותם 10 אנשים כל פעם הם אלו שעונים.

בכל מקרה אני אפרסם את הקוד כשאחזור הביתה מהעבודה, לא עשיתי import, הסקריפט בגדול מחולק ל4 פונקציות:
הראשונה עושה fetch, השניה מזהה מה הדף הנוכחי ובעצם בוחרת את הצאנק המתאים של קבצים ברשימה להראות (0-5, 5-10 וכו׳).
שם הבעיה שלי, הפונקציה אמורה לעשות slice לרשימה ולהוציא חלק קטן ממנה, ואז על כל חלק בהמשך נוצרים לי כל החלקי html שאני צריך.

ניסיתי גם להחליף את ה-slice שיעבוד עם עם טווח אבל בגלל שאני לא מכיר את השפה אני מתקשה לגרום לקוד לעבוד כמו שאני צריך.

הפונקציות הבאות מכינות את הכפתורים ללחיצה, וגורמות לכל זה לעבוד.

הדבר העיקרי שמצאתי באינטרנט לגבי ההערה הזאת הוא שבדרך כלל היא נובעת בגלל שהפונקציה לא מקבלת כלום לרוץ עליו, מה שאני יודע להגיד אצלי שהוא לא נכון כי כשאני עושה לוג לקובץ אני רואה תחת console את הרשימה עם הjson-ים בתוכה וגם רואה שהרשימה מסוג array.

כאמור, אנחנו מנפקים החזר מלא על הקורס.
מתנצל מעומק הלב שישנתי ב־9 בבוקר ביום שבת, אחרי שעבדתי עד 8 בבוקר על הסילבוס לשבוע הבא.
כשהתעוררתי עברתי על הפורומים, אבל התגובה שלך הוציאה לי את החשק לענות.

אתה תמיד מגיב באופן ארסי ולא נעים ואני תמיד מחליק עם הערה צינית, אבל הפעם נראה לי שאתעכב על זה.

הקהילה המדהימה שנוצרה פה מורכבת מאנשים מקצוענים ואמביציוניים שהצליחו לשרוד עד כאן.
הרבה מהם עוזרים כשיש להם זמן פנוי, על חשבון זמנם החופשי והמון רצון טוב. הם עושים את זה במקום לעשות דברים אחרים.
אני מרגיש צורך לעזור לכל מי שמבקש כי אכפת לי שמי שבחר להיות חניך שלי יצא מהקורס ברמה מצוינת. אני עושה את זה במקום לעשות דברים אחרים.
לכולנו יש תעדופים גם בקורס וגם בחיים הפרטיים, ואתה צריך לקחת בחשבון שייתכן שההודעה של דרור ביטון אינה בראש הרשימה בטווח של 5 שעות מרגע שפרסמת אותה.

הפעם תסתדר בלי העזרה שלי, התגובה שלך הייתה לי מאוד לא נעימה.

3 לייקים

אני לא אגרור את הדיון או הדעה שלי לגבי איך אני מרגיש בנוגע לעזרה פה בפורום, גם ככה הדעה שלי לא כל כך משנה, בין אם צינית יותר או פחות.

אכתוב פה בכל זאת את החלקים בקוד כי אולי צדיק אחד יוכל לעזור.

מתוך פייתון:
n = [i.as_dict() for i in session.query(Post).order_by(Post.date_published.desc()).all()]
return json.dumps(n)

מתוך גאווה סקריפט:
(ניתן לראות את הקוד עליו התבססתי כאן
בנוסף כמו שניתן לראות: הפונקציה מחזירה את התוצאה הרצויה, רשימה של json-ים:

פונקציית fetch

async function fetchDataJson() {
	const response = await fetch('http://127.0.0.1:5000//fetch');
	const list_items = await response.json();
	return list_items
}

קריאה לפונקציה

var list_items = fetchDataJson()

הגדרת משתנים (יש בהם שימוש בהמשך)

const list_element = document.getElementById('posts');
const pagination_element = document.getElementById('pagenumbers');

let current_page = 1;
let rows = 5;

חלק מהפונקציה

function DisplayList (list_items, list_element, rows_per_page, page) {
	list_element.innerHTML = "";
	page--;
	let start = rows_per_page * page;
	let end = start + rows_per_page;
	
	let paginatedItems = list_items.prototype.slice(start, end);
DisplayList(list_items, list_element, rows, current_page);

וחוזר על המטרה:
הקוד אמור לקחת טווח מסויים מתוך הרשימה, ועבור כל שורה ליצור את כל הhtml, ולהוסיף במקום הנכון.
כבר וידאתי שהקוד עובד כמו שצריך ע"י העתקת הפלט של ה-json והדבקה שלו בתוך הקובץ גאווה סקריפט מה שגרם להכל לצאת נכון, רק שמתי שאני מנסה למשוך הוא משום מה לא מצליח לזהות את הנתונים, למרות שכשהוא נשלחים בlog הכל מתקבל כמו שאני רוצה.

אז אולי תיקח אותם מהלוג?
וככה תעקוף את הבעיה?