למידה עמוקה מבוססת אינטרנט ואבטחה לפי דוגמה

עַל יְדֵי Daisy
מעשי מבוסס על למידה עמוקה ואבטחה על ידי דוגמה מהדורה שלישית שרלוט הרפר 3 ביולי 2024 הַקדָמָה: שיקולי אבטחה בבניית תוכנות לרשת הם חלק חשוב בתוכנית וביצוע של מפתח אינטרנט כלשהו תוך הנדסת אב -טיפוס שהוא אמין, יציב ושימושי למטרות מעשיות. ה- DOM (סימון אובייקט מסמך), עם יישום ה- HTML, JavaScript ו- CSS וכן תוכנת Backend המיישמת את Python, C/C ++, Java ו- Bash, נותנים למפתחי אתרים את החופש והעוצמה ליצור מגוון רחב של פרויקטים המבטאים יצירתיות, לספק קלות שימוש ופונקציונליות, מציגים ענווה ואופי, ולספק קלות שימוש כמו גם נוחות ושירותים חשובים שכולם אטרקטיביים לג'ו הממוצע, משתמש הקצה שמחפש להרוג זמן או לעשות משהו באינטרנט, בדרך כלל במכשיר סמארטפון מסך מגע. רוב האנשים אפילו לא היו יודעים מאיפה להתחיל מתי הם רוצים לבנות אתר אינטרנטמגרד, הם היו נוטים להתחיל באתר של אדם אחר ולבנות משהו מוגבל בפונקציונליות, אמינות, קלות שימוש ובעיקר יצירתיות כאשר הם יכלו לעמוד על כל הכלים החזקים האחרונים העומדים לרשותם על מנת לבנות משהו שימושי בלי לבזבז זמן לחיצה על כפתורים ובמיוחד בזבוז כסף שמשלם עבור מנויים יקרים לתוכנה שמעטים אנשים רצו להשתמש בהם בכל מקרה בהתחשב במגבלותיו בנוחות השימוש והגמישות. אם יש לך כמה דקות לקרוא את הספר הזה וללמוד מה אני רוצה ללמד אותך, או אפילו לדבר איתי באופן אישי על המטרות שלך ולקבל הדרכה בכיוון הנכון, ומונעים ללמוד לקוד ולכתוב תוכנה משלך , קח את הספר הזה הביתה והקצה קצת זמן ללמוד לבנות את יישום האינטרנט המשפיע, העוצמתי, היעיל והחשוב הבא, אתר שכולך עליך ועושה בדיוק את מה שאתה רוצה ועונה על צרכי הקהל שלך. עלי: אני מפתח תוכנה עםמגוון הניסיון ב- C/C ++, Java, Python, HTML, CSS ו- JavaScript. אני בונה אתרים שאנשים רוצים להשתמש בהם, רוצים לבקר ואפילו להתמכר לשימוש רק כדי ללמוד, לשחזר זמן ולהרוג, והכי חשוב, אני מוכר תוכנה. אם היה לך רעיון בדיוק איך רצית שאתר יחפש ויתפקד, היית מוכן לתמוך בי כדי שאוכל לענות על הצרכים שלי בזמן שאני עומד בשלך, ואתה מוכן לכסות את העלויות של הפעלת אתר בעצמך, הייתי בונה לך את ה- YouTube, Tiktok, Twitter, Google או אפילו אפליקציית אבטחה היי-טק רק שתוכל לגשת אליה. במקום לנסות למכור לך את הזמן שלי, אני מנסה לקנות את שלך: אני רוצה לדבר אותך בבניית אפליקציה (אתר) בעצמך עם המידע שכבר קיים, וללמד אותך את מה שאתה צריך כדי להיות מפתח תוכנה עצמאי, יזם, מוביל קריירה מצליחה בכל תחום שתרצו. ותן לי להיות ברור, החינוך שאני נותן לך יהיה לא פורמלי. אתה יכול ללכת לבית הספר וללמוד את כל זה עם אחינוך רשמי, או אפילו קרא את הספר הזה בבית הספר, מלא את המטלות שלך, ולקחת הרבה מהשכלה שלך, אבל אני לא אשים אותך רשמית למושב החם ואבקש ממך למלא משימות. אני לא הפרופסור שלך, אתה יכול לחשוב עלי כמו חבר שרוצה להדריך אותך לקריירה המונעת על ידי ההצלחה האישית שלך. ואני גם לא מוכר לך הצלחה, תצטרך לקנות את זה עם הזמן שלך. למידה לקוד יש עקומת למידה תלולה ולעולם לא הייתה קלה, או אפילו אמורה להיות. אתה צריך לעבוד קשה ככל שתוכל ולהמשיך לנסות ולהיכשל ולנסות שוב גם כשאתה מתוסכל כדי ללמוד ולבנות אפליקציות בעצמך. זה באופי הקוד עצמו. הקוד מנוהל על ידי מהדר שנועד למסור את הודעות השגיאה של המתכנת, ואלה ילמדו אותך כיצד לקוד, גם אם אתה פשוט מעתיק את השגיאה במנוע החיפוש שלך וקורא דוגמאות של אנשים אחרים. ואני חייב לומר, אתה לא צריך להיות עשיר במיוחד, חכם,Essful, או אפילו פרטים מכוונים או מאורגנים לבניית אפליקציה. המחשב דואג לארגון זה עבורך. אתה רק צריך להתמיד דרך הניסוי והטעייה, לשמור על מיקוד ולעבוד קשה במה שאתה עושה, ותהיה לך קריירה מצליחה מאוד בכל מה שאתה עושה. מי אני: אני מבין שהקטע האחרון היה יותר על למידה ולקחת דרכים מהספר הזה. מי אני בדיוק? זו שאלה מסובכת. אני לא ברור על עצמי, מכיוון שאני סובל ממצבים רפואיים שיכולים להקשות עלי אפילו לקוד או לכתוב את הספר הזה לפעמים, תוך הצגת אתגרים עם סוגיות סוציאליזציה וזהות שמקשות על חיי כשמדובר בהצגת עצמי ו בקיצור, אם אתה קורא את הספר הזה, הבאת אותו הביתה כי דפכת דרכו וחשבת שהוא שימושי, או אפילו אם אתה פשוט קורא את זה רחוק, לך אני אינדיביד כל מה שאתה עושה. אני מהנדס בעצמי,מפתח, וסטודנט, ואני כותב את הספר הזה לתלמידים אחרים שרוצים להקל על חייהם על ידי שיש לי ספר לימוד של התוכנה שהם צריכים להקל על חייהם על ידי מתן דוגמאות להעתקה המתאימות כמו פאזל גדול לעבודה , אפליקציה שימושית, גדולה, פונקציונלית, מגובשת ומרתקת שיכולה להניע הצלחה ללא קשר לקו העסקים. בעיקר, זה מה שאני עושה: אני בונה אפליקציות שיעזרו לעצמי ולאנשים אחרים להצליח. אני גם מחבר, אם כי זה הפרסום הראשון שלי שאני מתכוון להשלים כדי להרכיב את תיק העבודות שלי למסמך שימושי, וגם אני אמן. אני אודה לך בזה, אני סוג של אדם מוזר. אני לא מושלם, ניהלתי תוספות עם החוק אפילו להוביל אותי לעזוב את המכללות והאוניברסיטאות ולעזוב מדינות כדי לנסות לעשות לעצמי שם עם יותר הצלחה. אני אישה מלידה, אני לובשת איפור, מצלמת את עצמי, לובשת שמלות ובגדי נשים אחרות, ואני נשארת מודעת לעצמי כ-נקבה מטבעם. היו לי בעיות עם אנשים אחרים בעבר שמובילים למאבקים בכתיבה ובניית WebApps, ואני מתנצל שלא הצלחתי להכניס את הספר הזה לידיים מוקדם יותר: היית זקוק לזה. אתה תרצה לקרוא ולכתוב קוד שנראה כמו שלי ועובד כמו שלי ועושה את אותו הדבר אבל אפילו טוב יותר, כי אם אתה יכול להרשות לעצמך לקנות את הספר הזה במקום לרסק את המקלדת שלך כמו שאני עושה רק כדי ליצור ספר בעצמך מבקש כסף בשביל זה יש לך את המשאבים שאתה צריך כדי להצליח בחיים שלך. היו לי כל מיני בעיות עם משפחת התבגרות, מצבי בריאות, רופאים, התקשורת והחוק, והקוד שלי משקף עמוקות את המאבק שהוא פמיניזם ואופי נשי בעולם מחולק ומתוסכל. עם זאת, הספר הזה הוא משהו שאכפת לי מאוד ממנו, התינוק שלי, התיק שלי והפרנסה שלי, אז אני מעריך את שיקולך כשאתה לוקח את הטקסט הביתה ומטפל בו בזהירות כדי ללמוד ממני. אנא זכור שאני לאECT, לספר זה יהיו שגיאות, תיקונים ומהדורות חדשות, ותצטרך לחשוב עם המוח ההגיוני שלך כמיטב יכולתך כדי לקבל חוויה מוצלחת בכתיבה שלי. כמו כן, הבין שאני מתכוון טוב לך גם כשאתה מתמודד עם אתגרים בעת הכתיבה. חשבו על זה ככה: כשאתה יכול פשוט לשכור מערכת מחשב שתעשה כל דבר שאתה יכול לדמיין במרחב הדיגיטלי, לאחסן את כל המידע שאתה נתקל בו, #$%! יזה וארגן אותו, ובוא להבין אותו, אתה תעשה זאת באופן בלתי נמנע נתקלים בקשיים במידע שאתה בולע ואפילו לפרסם. אני אומר לך את זה כי אני נתקל באותם קשיים. השתמש בספר זה על אחריותך בלבד, עבד עם הקהילה שלך וקהילות העומדות לרשותך לבניית תוכנה במסגרת בטוחה, ואל תיקח דברים באופן אישי כשאתה נכשל או אפילו מצליח בצורה לא נכונה: ככה הגעתי עד כה ומדוע אוכל להביא לך את הטקסט הזה ולעזור לך להצליח מבלי להתפוגג בדרך של טירוףAves Me Me הרוס, קרוע ונפרד בזמן שאני נתקל בבעיות הרגילות שכולם עושים בקנה מידה עולמי בזכות הסולם הגלובלי הפרליסטי של הרשת שעליה נעבוד, האינטרנט. יתכן שאתה לא מכיר את מי שאני רק עם כמה מילים, אבל אני ממליץ לך לקרוא, תכיר אותי כשאתה ממשיך לקרוא ולהבין אותי תוך כדי בניית פרויקטים משלך להשלמת העבודה שלך. לא יהיו שיעורי בית עם הספר הזה, כל עוד הפרופסורים או המורים שלך לא מקצים לך שום דבר, אבל אני ממליץ לך מאוד לבנות עבודת פרויקטים בעצמך בזמן שאתה קורא, כמו גם פרויקט קפסטון המציג איך אתה יכול החל את מה שלמדת. פרויקט Capstone שלי הוא הבסיס לרוב מה שתקראו בספר זה, מכיוון שהוא משלב קוד מהפרויקטים הקודמים שלי, הקוד שיצרתי ולמדתי לכתוב בשיטתיות ביד, ומגוון רחב של רעיונות וטיפים שעזרו לי להצליח עד כדי כך שאוכל לסובב אפליקציה פשוטהמוצג במלואו ונראה ומתנהג כמו אפליקציה פופולרית שאתה עשוי לראות את חברך או המשפחה שלך משתמשים, באינטרנט, המפורסמים לך או בחדשות. מהו הספר הזה: ספר זה הוא הדרכה לפי דוגמה. אתה יכול למצוא קוד כאן, הוראות כיצד ללמוד לקוד, מידע על קוד ניפוי באגים ותיקון שגיאות, פתרון בעיות, הוראות כיצד לגבות ולשמור את הקוד שלך, לפרוס מחדש אם מישהו מפרק את הקוד שלך, אבטח את הקוד שלך, לפרוס הקוד שלך, בנה אתרים אינטראקטיביים שהם מבדרים, מרתקים וממכרים, ותקבל תחושה של מי שאני, מדוע זה חשוב ואיך להציג את עצמך, את האפליקציה שלך ותמונת החברה שלך, כמו גם את התוכנה שאתה בונה באור הטוב ביותר המוחלט להיות האטרקטיבי ביותר ככל האפשר למשתמשי הקצה שלך, המבקרים באתר שלך. בספר זה, אדגים מספר דוגמאות לעיצוב תוכנה עם דגש על האינטרנט כפלטפורמה כמו גם אבטחה. אנו נתחיל את חווית הלמידה על ידי בניית בסיסיOfer offer באמצעות מעטפת UNIX, עם תכונות גיבוי ותסריטים. לאחר מכן, אנו נבחן אתר בבלוג בסיסי, נשדרג את הבלוג שלנו עם תכונות תמונות ווידאו וכן נשתמש בתכונות אלה כדי להשתמש בפתרונות אבטחה באמצעות תוכנה בחינם, ונאבטח את השרת שלנו באמצעות מודול אימות ניתן לחיבור (PAM). לאחר מכן נסקור את הטיפול והעיבוד של קבצים, בחינת עריכת וידיאו, תרומת קולי, סריקת ברקוד וזיהוי תווים אופטי, בין מושגים אחרים. לאורך הדרך נבחן ממשקי API אשר יעזרו לנו להפוך את התוכנה שלנו למועילה ובטוחה יותר, עם אפשרויות בחינם ומשולמות. לאורך הדרך, נחקור אבטחה פיזית וכלים מיליטנטיים כמו כלי נשק ותחמושת תכנון וייצור כולל עיצוב חבית ומשחזר, עיצוב צריח ומזל"ט, ומנהלים אחרים שנשתלב עם התוכנה שלנו ברשת הקיימת על מנת להגן על התוכנה שלנו ולהפגין הגנה עצמית וחיסול. ניקח הפסקות לאורך הדרך לבניית משחקים, 2d ו- 3Dמנועי סיבוב ועבודה עם חומרה משובצת בדוגמאות למבחני מחקרים לתוכנת עיבוד מימדית בסיסית ועיסוי רוטט אלקטרוני יצוק בגומי סיליקון בהתאמה. לאורך הדרך, אנו נשתמש גם בפתרונות למידת מכונות שכבר זמינים על מנת לאבטח טוב יותר את התוכנה שלנו. אנו גם נשתמש בכלי מניות הזמינים לאינטרנט על מנת לייעל את התהליך ולאבטח את התהליך. ספר זה מהווה מדריך להצלחתך בבניית יישום אינטרנט ושילובו ברשת מקצועית של מערכות מכונות מחשב ומטוס, ובסך הכל מדריך לבניית תוכנה וחומרה משובצת ללא ידע ברקע או ניסיון קודם. מה שהספר הזה אינו: אם אתה באמת רוצה שיהיה לך אתר, אתה יכול פשוט להקים חנות פשוטה ולמכור את מה שאתה צריך, לפרסם בלוג, לפרסם תמונות או סרטונים, או אחרת מבלי לכתוב אי פעם שורת קוד אחת. הספר הזה לא זה. ספר זה ילמד אותך כיצד לבנות תוכנה שימושית יותר, באופן מלאמוצג, פונקציונלי ומאובטח מכל תוכנה שכבר תוכל למצוא, מכיוון שהיא מפרסת את התוכנה העדכנית ביותר שעדיין אבות -טיפוס, עשויה להיות יקרה להפעלה בקנה מידה של חברות ישנות פועלות בהן ואינן מושכות לאחור, חברות מפותלות שהוקמו להן הרוויחו כסף לאנשים שלא באמת עושים כלום. אם תעקוב אחר ספר זה מקרוב, תרצה לכתוב קוד, קוד מחקר, לבנות אפליקציות משלך ותרוויח כסף ממה שאתה עושה. אני ארוויח כסף מהספר הזה, אפילו בשלבים מוקדמים, מכיוון שהוא מכיל מידע שאנשים צריכים ורוצים לקרוא, וכבר קונים כשהם קונים או משתמשים באפליקציות שלי. ספר זה לא יבנה עבורך אפליקציה, אך הוא יפנה אותך בכיוון הנכון ויחמש אותך עם הכלים הדרושים לך וכישורים וטיפים שיאפשרו את ההצלחה שלך בבניית תוכנה לאינטרנט, עם כל שורה של קוד תצטרך לכתוב כדוגמה, מוכן להיות מחובר יחד לתוכנה שאתה ולתומכים שלך, אורחים, קהל לקוחות שלך,Riends, משפחה, מבקרים, קבלנים ואנשי האינטרנט רוצים להשתמש ולתמוך. מה תלמד: ספר זה ילמד אותך כיצד לבנות ולמכור תוכנה, תוכנה פונקציונלית, שימושית באמת, הקלטת מדיה, מאפייני אבטחה כמו זיהוי פנים, סריקת ברקוד באזור קריאה, ממשקידי אינטרנט כדי לאמת, להקליט ולהעביר וידאו ותמונות, ולהחליף הודעות כמו Bluetooth ותקשורת ליד שדה (NFC). ספר זה ילמד אותך כיצד להשתמש במחשב ברשת, תוך התמקדות בלינוקס של דביאן, כיצד לבנות קוד BASH כדי להפוך את ההתקנה והגיבוי של התוכנה שלך לרוח חלקה ואוטומטית, כיצד לבנות קוד פייתון כמתחם כדי לשרת הודעות דינאמיות, סגנון דברים יפה המשתמשים בסגנונות CSS עם Bootstrap, מאפשרים כניסות למשתמש ואינטראקטיביות באמצעות מכשירים ברשת, בנו מדיה אינטראקטיבית ורשת עם אתרים אחרים כדי להציע תכונות אבטחה כמו הודעות טקסט לאימות או למטרות אחרות, סריקת תעודות זהות, דימוי ווידאו, נתוניםשערות לשמירה על אבטחת התוכנה שלך, עיבוד תשלומים, סחר בקריפטו, משימות אסינכרוניות ועוד. תלמד כיצד לבנות מכשירי Bluetooth משלך, עם סוללות, מטענים, בקרי מיקרו, מעגלים, מנועים וחיישנים, באמצעות הלחמה, חוט ותלת מימד מודפסים כמו גם חומרים יצוקים. אני אדגים מנהלי עיצוב תלת מימד המיושמים על ייצור תוספים וייצור כלים ומות, כך שתוכלו לייצר מכשירי חומרה משובצים משלכם עם סוללות משולבות, מטענים, מעגלים אלקטרוניים ותפוקות פונקציונליות. ורשת אותם עם Bluetooth והאינטרנט. באופן ספציפי, נבחן שני מחקרי מקרה, עיסוי רוטט ונשק ביתי, שתיהן מתוכנת ב- OpenScad, הזמין כממשק גרפי או כלי עזר לשורת פקודה וניתן לשלב אותו באינטרנט לתוצאות מהירות יותר. תלמד כיצד לבנות ולפרוס אתר מהיסוד ללא ניסיון קודם, הפוך אותו לתפקוד, מאובטח, יפה, שימושי והכימעשי באופן מובהק. תלמד כיצד להשתמש בלמידה במכונה ובראיית מחשב כדי להפוך אתר לאבטח ומעשי יותר, הקלט וידאו ושמע מאתר האינטרנט שלך, לתרום את הקול שלך, ליצור מוזיקה ולווסת שמע כדי ליצור דוגמאות שימושיות וכיצד לפרוץ את הרעש על ידי מינוף אתרים אחרים לבניית הרשת הטובה ביותר של אתרי אינטרנט שתוכלו לקשר ישירות לשלכם על מנת לשתף את כל המידע השימושי שיש לכם להציע, וחשוב מכך להביא אנשים לתוכנה ולעסק שלכם. ספר זה יתמקד ביותר במדיה, אבטחה ולמידה מכונה, שהם שלושת הרכיבים העיקריים שיעזרו לך לבנות תוכנה שימושית לאינטרנט על ידי מעורבות המשתמשים הנכונים ולהנתק את הלא נכונים באופן שהוא מציאותי, מעשי, ידיים ומרתקים תוך כדי אוטומטי, ויציב. ספר זה מלמד את יוניקס, ספציפית דביאן (אובונטו), Bash Shell, Python, HTML, CSS, JavaScript, ומספר חבילות תוכנה שימושיות עבורn כמו בקשות, כמו גם תוכנות BASH שימושיות כמו GIT ו- FFMPEG. אני גם אלמד אותך כיצד לסחור בקריפטו באופן אוטומטי, ולקחת תשלומים בקריפטו או מכרטיסי חיוב רגילים ואילו אפילו לשלם את המבקרים שלך חלק מההכנסות שלך אם תבחר לעשות זאת. אני אלמד אותך כיצד להרוויח כסף מהאתר שלך גם באמצעות פרסום, כיצד להכין את האפליקציה שלך למנועי חיפוש ולהפוך אותה למהירה, מדורגת בדירוג הראשון למה שהלקוחות שלך יחפשו כדי למצוא אותך, ולדירוג שכיחים רבים חיפושים ככל האפשר. אני אלמד אותך כיצד למכור את התוכנה שלך, לפרסם אותה, לפנות ללקוחות המחפשים את השירותים שלך ולעשות לעצמך שם באינטרנט באמצעות דרכים שכבר קיימות, לא יקרות ועובדות טוב. אני אלמד אותך כיצד לשמור את הנתונים שלך במחשבי ענן שעובדים עבורך ושמור את הנתונים שלך בזול, כיצד לתכנן ולבנות אתר שעושה את מה שהמשתמשים שלך רוצים ומה אתה רוצה ואיך לעסוק במשתמשים שלךהאתר שלך הברח על הטלפונים שלהם עם התראות, דוא"ל, הודעות טקסט, שיחות טלפון ועוד דרכים כדי להחזיר את המשתמשים שלך לאתר שלך לרשותך מאחורי לחיצה על כפתור שמאובטח לך בלבד. ספר זה יתמקד בפרקטיות של פרסום והפצת מדיה בכמויות גדולות, מטקסט לתמונות ועד סרטונים ועד אודיו, יוצר רושם טוב על משתמשי הקצה (קהל הלקוחות שלך) וימכור את עצמך בכל דרך שאתה עושה כדי ליצור אתר, אפליקציה המייצגת אותך ואתה בלבד, וגורמת לך, התוכנה שלך והחברה שלך להיראות טוב בצורה הטובה ביותר. תוכלו ללמוד ממני כמה טיפים וטריקים ממני, מתוך טיפים לקידוד, יהירות מעשית כמו איפור וצילום, דוגמנות ומשחק ועוד, מה שיהיה חשוב לתאר את עצמכם ואת החברה שלכם באור הטוב ביותר האפשרי באמצעות כל הכלים הזמינים לך תוך כדי הפצת תוכן רב ככל שאתה צריך על פני איזון בריא של פלטפורמות כדי להביא את שלךה למימוש ללא יותר מאמץ, עבודה או כסף ממה שצריך. ספר זה נקרא "למידה עמוקה ואבטחה מעשית על בסיס דוגמה" מסיבה: הוא עוסק בלמידה לקוד, במיוחד לאינטרנט, במיוחד עם דגש על אבטחה, מבחינה מעשית, עם דוגמאות לקוד עבודה המשרתת המטרות המעשיות המפורטות בטקסט. רכיב הלמידה של טקסט זה מקיף גם את למידת המכונה, הקוד שאראה לך כיצד לרוץ עבור האינטרנט שיטפל בראיית מחשב, זיהוי פנים, מתינות תמונה ווידאו, שיפור תמונות, שיפור רזולוציה, כיתוב תמונות ומשימות אחרות כמו מדדי חיזוי שמקורם בתמונות, כמו אופי התמונה כתמונה אותנטית, הובלה מחשב, או עותק אופטי (תמונה של תמונה, או תמונה מודפסת). למידת מכונה חשובה מאוד כשמדובר באבטחת אתרים ואבטחת תוכנה, מכיוון שהיא יכולה להקדים משימות שהיו בלתי אפשריות אחרת. המחשב שלךהתחבר אותך עם קוד סיסמה, אך יתכן ובטוח יותר להשתמש בו אם הוא מתקשר אליך עם הפנים שלך. אתה יכול להפוך מחשב שרת לבטוח זה, מחשב שבדרך כלל יבקש מכם שם משתמש וקוד סיסמה ויתחבר אליך, אולי עם אסימון אישור לכל כניסה חדשה או כתובת IP חדשה, אבל אם אתה בונה בקנה מידה גדול, קל ל השתמש, תוכנה מאובטחת ויסודה ועוצמתית, זה עשוי להספיק. קשירת התוכנה שלך מקרוב לתוכנה של מישהו אחר, כמו שירות דוא"ל או שירות הודעות טקסט, אינה מספיקה בכדי להפוך את התוכנה שלך לאבטחת, או של מישהו (כל אתר שאתה משתמש בו). לכל מי שבונה תוכנה המאובטחת ללא דופי, יש תחושה כלשהי של מה שמשמעות הדבר. תוכנה אינה בטוחה מטבעה מכיוון שהמכשירים והחשבונות שאנו משתמשים בהם כדי לגשת אליה לא תמיד עומדים לרשותנו, הם יכולים להיות בידי כל מי שיש לו כוונה לא טובה לתוכנה ולכן הם עשויים להוות סיכון לתוכנה עצמה. זה משהו ממוקד הספר הזה. מחשב ברשת הוא כברירת מחדלמאובטח עם אסימון מפתח ארוך, נקרא ו- SSH או מקש מעטפת מאובטח, ואחרת מאובטח בצורה הטובה ביותר בשרת אינטרנט, מכיוון ששרת האינטרנט מספק את הגישה הפתוחה כמו גם כלי האבטחה האמנותיים הפועלים בשרת עצמו. לשרת האינטרנט יש גישה לדפדפן האינטרנט של המשתמש, שהוא ללא ספק החלק החזק ביותר במכשיר המשתמש, מכיוון שהוא המקום בו המשתמש יכול לגשת לתוכנה ברשת. ערכת כלים זו יכולה להעביר טקסט, דפי האינטרנט שאתה רואה, ויכולה גם להקליט תמונות, שמע ווידאו (כמו תמונה של פנים או מזהה מדינה), יכול לקרוא ולכתוב למכשירי רדיו Bluetooth, ויכול לקרוא ולכתוב לשדה קרוב תגי משדר, כרטיסי מפתח זולים, FOBs, מדבקות, טבעות ואפילו שתלי שבבים עם מספרים סידוריים ייחודיים שניתן לקרוא ולכתוב אותם באמצעות נתונים שנוצרו ותוקף על ידי שרת אינטרנט הקשור לאתר האינטרנט. בעזרת כל הכלים העומדים לרשותכם, עם ספר זה תוכלו לצייד את עצמכם בידע לבניית אתר מאובטח, ובסך הכל אמערכת מחשב מחוברת ברשת שעובדת עבורך, עושה את ההצעה שלך ונראית ומרגישה נכונה. איפה להתחיל: אתם מוזמנים לדלג על החלק בקטע שאני מתחיל את הספר הזה, או כל קטע, על הקוד המדויק שאתם צריכים, במיוחד אם יש לכם ניסיון בקידוד לפני או בכל אחד מהכלים האמורים שאתאר בפירוט בספר זה כ- כמו גם תיעוד מקרי שימוש ודוגמאות מעשיות. אם אין לך ניסיון בכתיבת קוד, אני ממליץ לך לקרוא את כל הספר הזה, וממליץ לך במיוחד לקרוא את החלקים הקודמים, כדי לוודא שהספר הזה מתאים לך. אם ספר זה אינו מתאים לך, שקול להעניק אותו לחבר או קרוב משפחה שעשוי להיות מעוניין ללמוד על פיתוח אתרים בעצמם, ואפילו שקול להשאיל אותו בחזרה וללמוד מהם למלא את הפערים שבהם נכשלתי בך כ- מורה, או מורים אחרים עשו לפניי. התחל איפה שתעשה, כל חלק בספר זה יהיה שימושי אם אתה מתכוון לבנות שימושיPP, ושקול שהאפליקציות הטובות ביותר בנויות עם משתמש הקצה בראש: הכיר את הלקוח שלך. עכשיו אתה מכיר אותי, אתה מכיר את הספר הזה ואתה מוכן להתחיל. כדי להתחיל, תפוס מחשב (אפילו המחשב הנייד הזול ביותר מחנות קופסאות, אמזון או שולחן עבודה ישן עובד, והגדר אותו באופן שעובד עבורך. כיצד לקרוא את הספר הזה: טקסט מודגש, מציין כי הטקסט שייך לשורת פקודה, שם תכתוב את הקוד שאתה מפעיל. שורת הפקודה ממוקדת במקלדת כבדות ודורשת מעט לחיצה, להאיץ את זרימת העבודה שלך והקלת עליך את הדברים. תחילת העבודה: בואו נצלול פנימה. נתחיל בבניית קוד במחשב מקומי ונתחיל מבלי לבנות אתר המחובר לאינטרנט. זה בטוח יותר מלכתחילה, לא עולה כלום וקל לך. תלוי במערכת ההפעלה שלך, הכניסה לקליפת Bash תהיה קצת שונה. עבור Mac OS, אני ממליץ להתקין מחשב וירטואלי בנקודה זו, מכיוון שתקבל את התאימות המרובה ביותר עםמכונה וירטואלית. ספקים שונים כמו VirtualBox ו- Paralells יכולים להריץ עבורך מכונה וירטואלית, אם כי ניתן גם להתקין את אובונטו ישירות על המכונה, אם אתה מעדיף להשתמש בסביבה מקומית המומלצת על מנת ליצור חוויה מהירה ומייעלת. אם אתה משתמש ב- Linux או Windows, שאני ממליץ עליו, זה צריך להיות די קל ליצור פרויקט. פתח את הטרמינל שלך, התאם את הגודל כפי שאתה רואה לנכון, והתחל לעקוב אחר שלב 2. אם אתה משתמש ב- Windows, אנא עקוב אחר שלב 1. שלב 1: - משתמשי Windows בלבד ב- Windows, פתח את שורת הפקודה כמנהל וסוג WSL - התקן שלב 2: - המשך כאן, או דלג על שלב 1 לכאן אם אינך משתמש ב- Windows בטרמינל פתוח, (תלוי במערכת ההפעלה שלך, המכונה אובונטו ב- Windows, מסוף ב- Mac או Linux, או שם דומה), התחל ביצירת פרויקט. אנו עושים זאת עם הפקודה MKDIR, היוצרת ספרייה. אם אתה צריך ליצור ספרייה לאחסון הפרויקט שלך, המומלץ, השתמש בפקודת CD כדי לעבור לספריה ו CD/PATH/TO/Directory - הנתיב הוא התיקיות (קבצים) שקדמו לספריית היעד שלך, נתיב ברירת המחדל שלך הוא ~ או/בית/שם משתמש (שם שם המשתמש הוא שם המשתמש שלך). כדי לשנות את ספריית ברירת המחדל, הקלד CD או CD ~ דוגמה MKDIR - החלף את "דוגמה" בשם הספרייה עכשיו יש לך ספריית עבודה לפרויקט שלך. בהיותו כל כך חשוב שהספרייה הזו תשמור למקרה שתצטרך לעבור למכונה אחרת או לפרוס את הקוד שאתה כותב כך שהוא מוכן לאינטרנט, אנו נבנה סקריפט כדי לגבות את הספרייה שלך בשלבים הבאים. אבל בניית סקריפט לוקח קצת קוד, וצריך לבצע אוטומציה של קוד כדי להיות שימושי ככל האפשר. אז בואו נבנה תחילה תסריט לבניית סקריפטים. נתחיל ביצירת התסריט והופך אותו להפעלה. אנו נשתמש ב- Sudo, Chmod ו- Touch בשביל זה ונתקשר לתסריט
sudo touch /usr/bin/ascript
sudo chmod a+x /usr/bin/ascript
sudo nano /usr/bin/ascript
עכשיו יצרנו את התסריט, הפכנו אותו להפעלה, ומוכנים לערוך אותו. NANO הוא עורך טקסטים שיאפשר לך לערוך טקסט מבלי ללחוץ, וזה הרבה יותר קל מאשר להשתמש בממשק משתמש גרפי. כדי לערוך קובץ עם ננו, השתמש בננו ואז את הנתיב לקובץ. כדי להכין סקריפט שעושה תסריט, זה דומה למדי להכנת התסריט שלנו מלכתחילה. אנו נשתמש באותו קוד כמו לעיל, ונחליף את שם הסקריפט, "Ascript" בפרמטר טיעון, $ 1. זה מאפשר לנו לקרוא לתסריט על ידי הקלדת Sumbin Sudo Ascript Newscript, ובשלב זה נוכל ליצור כל סקריפט חדש על ידי החלפת "Newscript" בשם התסריט שלך. הקוד בננו צריך להיראות כמו:
sudo touch /usr/bin/$1
sudo chmod a+x /usr/bin/$1
sudo nano /usr/bin/$1
וכדי לסגור את ננו, נוכל להחזיק את מקש הבקרה ולחץ על X, ואז y כדי לציין שאנחנו שומרים את הקובץ, ולחזור להחזיר. כעת במקום להקליד את שלוש הפקודות הללו כדי לערוך סקריפט, נוכל להקליד Sudo Ascript Ascript כדי לערוך את הסקריפט שוב. זה עובד! וכל תסריט חדש ניתן להפעיל בקלות על ידי קריאה אליו במעטפת. בואו נשמור את העבודה שלנו עכשיו: בואו נכתוב סקריפט גיבוי כדי לשמור את התסריט החדש שלנו ואז לגבות אותו בספריית הפרויקטים שלנו, תוך גיבוי של סקריפט הגיבוי.
sudo ascript backup
עכשיו, בננו:
sudo cp /usr/bin/backup /path/to/directory/
sudo cp /usr/bin/ascript /path/to/directory/
איפה/נתיב/ל/ספרייה הוא הנתיב לפרויקט שיצרת עם MKDIR. בהמשך נלמד כיצד להעתיק נתיבים חוזרים כמו זה עם לולאה ורשימה, שהיא פחות קוד, אך לעת עתה בואו נשמור על זה פשוט ויש לנו כמה שורות. כדי להריץ את הסקריפט הזה ולגבות את הקוד שלך, שמור את הקובץ ב- NANO עם שליטה+x, y והחזיר והקליד את למטה לקליפה שלך
backup
אם אתה מתבקש בכלל לסיסמא בזמן קריאת ספר זה ומעקב אחר המעטפת, אנא הזן את סיסמת המשתמש שלך בצורה נכונה, יהיו לך שלושה ניסיונות לפני שתצטרך להפעיל מחדש את הפקודה. אתה יכול להשתמש בחצים למעלה ולמטה כדי מחדש לפקודות ולערוך אותן, אם תצטרך להריץ משהו פעמיים. לחץ פשוט למעלה ולמטה לסירוגין כדי לבחור פקודה, לפני עריכת הפקודה בעזרת החצים השמאליים ומקשת מחיקה כמו גם מקלדת, והפעלתו עם החזרה.
מזל טוב! הצלחת ליצור סקריפט גיבוי מדהים המגבה שני סקריפטים חשובים בספריית העבודה שלך. אנו עשויים להעביר דברים אחר כך ככל שהפרויקט הולך וגדל, אבל זה עובד לעת עתה. בואו נעבור לגיבוי בענן, אנו נשתמש ב- GitHub לשם כך (אם כי ישנם פתרונות GIT רבים אחרים לגיבוי, הם כולם בערך אותו תוכנה כשאתה עושה אותם לשרת, בזמןמה שמאפשר לך להוריד עותקים שלמים של התוכנה שלך מאחורי סיסמא או מקש. זה מסייע בשמירה של התוכנה שלך, במיוחד כשאנחנו נודדים למופעי לינוקס מאובטחים שלעתים נשברים כאשר שורה אחת של קוד נכשלת, ומותירה אותך נעול בזמן שהקוד שלך לא יגובה אם לא תקבל סיכוי לגבות אותו למעלה אוטומטית, שנכסה.
אם אתה כבר לא משתמש במכונה וירטואלית של אובונטו בשלב זה, אני ממליץ להשתמש במכונה וירטואלית של אובונטו בשלב זה מכיוון שזה יקל על חייך בעת התקנת כל החבילות הדרושות כדי לבנות אתר עובד ולקדם את הלמידה העמוקה פעולות במחשב שלך. אנו נעביר את הקוד לשרת אינטרנט בעתיד הקרוב, אך אנו רוצים לוודא שיש לפחות כמה שכבות אבטחה מאחורי שרת האינטרנט שלנו העמידים בפני דיוג, ונעסיק מספר חבילות לינוקס כדי לעשות זאת זֶה. אם אתה עדיין רוצה להשתמש במערכת ההפעלה של MAC, אתה מוזמן לחפש ולהתקיןE חבילות הכרחיות באופן מקוון, אך יתכן שלא יהיו אלטרנטיבות לכל חבילה שהספר או הסדרה שסוו.
בואו נוסיף כמה פקודות לביצוע עבודתנו עם סקריפט הגיבוי על ידי הפעלת Ascript Command Sudo
# ...
git add –all
git commit -m “backup”
git push -u origin master
שוב, שלוט ב- X כדי לחסוך.
כעת עלינו לעשות תצורה אחת לאחת לפרויקט זה. מכיוון שבקרוב זה יהיה פרויקט GIT, איננו צריכים להקליד כל פקודה בכל פעם שאנחנו פורסים ממאגר GIT, אך נקבל את זה כשאנחנו כותבים את סקריפטים של הפריסה שלנו. כדי להתחיל, בואו נוודא שאנחנו בספריה הנכונה ונתחיל את מאגר ה- GIT ולייצר מפתחות SSH.
cd /path/to/directory
git init
git branch -m master
ssh-keygen
לאחר שנקלד את SSH-Keygen, יש לשמור את המפתח החדש בתיקיית הבית תחת תיקיה בשם .ssh. זה נקרא id_rsa.pub. בואו נמצא את המפתח הזה ונעתיק אותו. לראות את זה,
cd ~
cat .ssh/id_rsa.pub
העתק את הטקסט שמוחזר על ידי הפקודה האחרונה, וצור חשבון עם ספק GIT שלך (באופן אידיאלי GitHub), לפני שתוסיף את מקש ה- SSH לחשבונך. לאחר שיש לך חשבון, לחץ על התפריט השמאלי העליון והזן הגדרות, לפני שתוסיף את מקש ה- SSH שלך במקשי SSH ו- GPG תחת גישה בתפריט. בחר הוסף מפתח SSH והוסף את שלך על ידי הדבקתו פנימה והענקתו לו כותרת, לפני שתשמור וחזר ל- GitHub כדי ליצור מאגר חדש. זה דומה עבור ספקי GIT אחרים, תצטרך לקרוא את התיעוד שלהם. בתצורת המאגר החדש, תן למאגר שלך שם תיאורי והחליט אם ברצונך לפרסם אותו, וקפד להגדיר עדיין שום קבצים להכללה. לאחר יצירת המאגר, העתק את השיבוט בכתובת SSH והדבק אותו לפקודה הבאה.
git remote add git://… (your remote URL)
עכשיו אתה יכול לחזור למאגר שלך עם CD, אתה תכיר את זה. נסה את סקריפט הגיבוי שלך עכשיו עם גיבוי
גָדוֹל! עכשיו אנחנו באמת יכולים לקבל קידוד. בואו להתקין את Django עכשיו כשיש לנו תפיסה טובה על Bash ו- Git. Django יאפשר לנו לגבות אוטומטית את התוכנה שלנו, Bash יכול לעשות זאת גם אבל ל- Django צריך להיות יישום בטוח יותר יותר (ניתן להשבית אותה ולהגדיר אותו ביתר קלות).
כדי להתקין תוכנה באובונטו, אנו נשתמש בפקודה SUDO APT-GET. ראשית, בואו נעדכן ולשדרג את התוכנה שכבר הייתה לנו. ניתן לעשות זאת באמצעות עדכון Sudo Apt-Get ושדרוג Sudo Apt-Get-Get -y. בשלב הבא, בואו להתקין את פייתון והסביבה הווירטואלית שלנו, בית הקוד שלנו, עם הפקודה הבאה: sudo apt-get התקנה python-is-python3 python3-venv
זה כל מה שאתה צריך כדי להתחיל עם Django מבחינת התקנות תוכנה במופע אובונטו. עבור Windows ו- Linux זה אמור להיות די פשוט, אבל עבור Mac אולי תרצה להתקין מחשב וירטואלי ולינוקס עליו באמצעות סביבה וירטואלית בחינם או בתשלום כמו Virtualbox או Paralells Desktop ולשחזר את השלבים שלמעלה על מנת להגדיר סביבת אובונטו. אובונטו הוא קריטי במקרה זה מכיוון שזו התוכנה שהאתרים מפעילים והיא מאפשרת להם לארח אתרים עם כל התוכנה הנ"ל.
בואו נחפור בדג'נגו.
בספריה שלנו שוב, עם
python -m venv venv # יוצר את הסביבה הווירטואלית בה מאוחסן הקוד
source venv/bin/activate # מפעיל את הסביבה הווירטואלית
pip install Django
django-admin startproject mysite . # איפה MySite הוא הפרויקט שאני מתחיל בספריה הנוכחית שלי.
Django רק מתחיל אותנו, מכיוון שג'אנגו מארח את שרת האינטרנט ועושה את כל מה שאנחנו צריכים כדי להפעיל אתר מקומי בסיסי. כעת, לאחר שהתקין את Django, בואו נערוך קצת את ההגדרות כדי לגרום לזה לעבוד איך שאנחנו צריכים. ראשית, בואו ניצור אפליקציה חדשה
python manage.py startapp feed
תבחין שהאפליקציה הראשונה נקראת Feed. יש לקרוא לאפליקציה ככל שתרצה, ואנחנו ניצור אפליקציות חדשות, אך שמו של כל אפליקציה חייב להיות עקבי בכל פעם שהאפליקציה מופנית בקוד. כדי להוסיף אפליקציה חדשה, אנו תמיד נערוך את ההגדרות. Py בספריה האחרת שהאפליקציה יצרה, בשם ב- StartProject, להלן אפליקציה. באמצעות ננו,
nano app/settings.py
בהגדרות, מצא התקנה_אפס והפריד בין [] לשלושה שורות. בעזרת ארבעה חללים בשורת המרכז הריקה, הוסף 'הזנה' או שם האפליקציה שלך. החלק הזה של ההגדרות. PY צריך להיראות כמו:
INSTALLED_APPS = [
'feed',
]
לפני שנשכח, בואו נבחן שג'אנגו עובד. בעזרת הפקודה Python Manage.py Runserver 0.0.0.0:8000, אנו יכולים להריץ את השרת ואז לנווט בדפדפן אינטרנט במחשב שמריץ את הקוד ל- http: // localhost: 8000 ולראות דוגמה של דף אינטרנט (זה עובד!) צא מהשרת עם Control C, זהה לכל פקודה אחרת.
עכשיו, בואו נחפור בכתיבת קוד פייתון. לדג'נגו שלושה רכיבים עיקריים, כולם מנוהלים על ידי קוד לחלוטין. הרכיבים נקראים מודל, תצוגה ותבנית, וכל אחד מהם נמצא ברמה גבוהה ונמוכה בהתאמה לפני שדף האינטרנט מועבר למשתמש.
המודל הוא הקוד המאחסן מידע במסד הנתונים לאחזור, מיון ועיבוד.
התצוגה מחליטה כיצד המודל ניתן, מניפולציה ושינוי, כמעט כל תצוגה תשתמש במודל ישירות.
התבנית היא קוד HTML עם כמה פעמונים ושריקות נוספות הנקראות שפת תבנית. התבנית ניתנת על ידי הנוף בו היא מלאה בקוד פייתון והקשר כמו מודלים ומידע (מיתרי Usuall ומספרים שלמים) מהנוף.
לדג'נגו יש גם רכיבים אחרים, כולל אך לא מוגבלים ל:
הגדרות, המגדירות את האפליקציה כפי שדיברנו.
כתובות אתרים, שהם דפוסים שהמשתמש עוקב אחריו כדי לקבל גישה לחלקים ספציפיים ביישום האינטרנט.
טפסים, המגדירים כיצד מידע שנשלח לשרת מטופל ומועברים למסד הנתונים כמו גם למשתמש. אלה הם הבסיס למידע על עיבוד בצד השרת, ויכולים לקבל כל סוג של מידע שמחסן המחשבים, בעיקר מיתרי טקסט, מספרים ובוליאנים אמיתיים/שווא (בדרך כלל תיבות סימון).
תבניות, שהן קוד HTML ושפת תבנית ומגשרות על הפער בין פייתון ל- HTML, כלומר מידע על פייתון יכול לשרת כקוד HTML שכל אחד יכול לגשת אליו ויכול לאבטח אתר עם גישה מוגבלת, תוך הפיכת קוד פיתון לנגיש לרשת ולשימוש למגוון מטרות במכשיר מרוחק שלאלהיות קרוב לשרת.
קבצים סטטיים, שהם בדרך כלל javaScript ומדובר בספריות שהשרת משרת ומקושר לתבנית.
קבצי מדיה, שהשרת משרת או מתארחים חיצונית, או סתם נכתבים לשרת לפני שהוא מעובד ומוצב לשרת אחר (דלי) לאירוח.
תוכנת Middleware, שהיא חתיכות קוד המופעלות במקביל לכל תצוגה ונחשבות "כלולות" בתצוגה.
מעבדי הקשר, המעבדים את ההקשר של כל תצוגה ומשמשים להוספת הקשר נוסף.
בדיקות, המאמתות כי המשתמש או הבקשה מעבירים דרישות מסוימות לפני שניתן לתצוגה.
צרכנים, המכתיבים כיצד WebSockets מתמודדים ומגיבים לתקשורת.
מנהל, המשמש לרישום דגמים כך שניתן יהיה לתפעל אותם בפירוט בתוך דף הניהול של Django, שם ניתן לתת את בסיס הנתונים דרך ממשק גרפי.
סלרי, המגדירה משימות אסינכרוניות חלקים מקוד הג'נגו יכולים להתחילning לפני שתמשיך מייד למשימה או לשורת הקוד הבאה.
לדג'נגו יכול להיות רכיבים רבים אחרים, עליהם נדון בפירוט כאן. יש המון דרכים להפוך את דג'נגו לפונקציונליות יותר, להוסיף את רשתות האינטרנט, המהירות ערוצי תקשורת מהירים, סלרי, המבצעים משימות אסינכרוניות, ושלל חתיכות תוכנה אחרות להרחבת Django, במיוחד בפונקציות הנוף, בהן רובם של רובם הקוד מבוצע. פונקציות תצוגה הן המפתח מכיוון שהן בדרך כלל מכריזות על כל פיסת קוד הספציפית לתבנית URL ספציפית, או על קטע מהשרת.
ראשית, בואו לחקור פונקציות תצוגה. פונקציות תצוגה מתחילות ביבוא המציין קוד שישמש בתצוגה, ומוגדרים באמצעות הגדרות או מחלקות פונקציה רגילות. התצוגות הפשוטות ביותר מוגדרות על ידי הגדרת הפונקציה def, ומחזירו HTTPresponse עם תבנית בסיסית. נתחיל בהגדרת תצוגה בסיסית להחזרת הטקסט "שלום עולם". זכור שבכל פעם שאתה מוסיףלהצהיר כמו DEF, אם, אם, עבור וכו ', תצטרך להוסיף 4 רווחים לכל אחת מההגדרות המקדמות שתרצה להחיל על הפונקציה שלך. ניכנס למה שאמצעים כל אחד מאלה בקרוב.
מהספרייה של האתר שלנו, ערוך את קובץ ה- feed/views.py באמצעות NANO והוסף את השורות הבאות לסוף ה-
from django.http import HttpResponse
def hello(request):
return HttpResponse('hello world')
HTTPresponse של Django מגיב במחרוזת טקסט, המכונה עם הפתיחה והסגירה '. בכל פעם שאתה מעביר מידע לפונקציה או לשיעור, כמו בקשה או מחרוזת, תצטרך להשתמש בסוגריים (פתיחה וסגירה).
זה עדיין לא כל מה שאנחנו צריכים לראות את השקפתנו. כמובן, לא אמרנו לשרת היכן התצוגה בדיוק, אנו עדיין צריכים להגדיר נתיב שבאמצעותו התצוגה צריכה להעביר. נתחיל בהגדרת נתיב בסיסי באפליקציה/urls.py, ונכנס לקבוצות נתיבים בהמשך.
ב- App/urls.py, הוסף שורה לאחר הצהרות הייבוא לאחר תחילת ייבוא התצוגה שיצרנו זה עתה.
from feed import views as feed_views
עכשיו, בואו נגדיר את דפוס התצוגה. לדפוסי התצוגה יש שלושה רכיבים, רכיב הנתיב, המספר לשרת היכן התצוגה קיימת בתוך השרת (נתיב ה- URL שהמשתמש מקליד לסרגל הניווט כדי להיכנס לדף האינטרנט), רכיב התצוגה בו מצוין התצוגה, ו- שם ידידותי לתצוגה כך שקל לאחזר את התבנית שלו בעת עבודה עם תבנית, במיוחד כך שניתן לשנות את השם ולעדכן במידת הצורך כדי לפנות מקום לתצוגה אחרת או לקחת שם הגיוני יותר. הגיוני לעשות דברים בדרך זו ולהיות גמישים, מכיוון שבסיס הקוד שלך יהיה סביבה משתנה אי פעם שצריכה גמישות ואלתור על מנת להיות בעלת ערך וקל לעבוד איתה. הנה איך תיראה התצוגה שלך, אתה יכול להוסיף את זה ל- urlPatterns = [קטע של App/urls.py. דפוס התצוגה מוגדר עם שלושת הרכיבים שתוארו לעיל, ופונקציה הנקראת נתיב. דפוסי כתובת האתר שלך הם רשימה, לכן הקפד לסיים תמיד כל פריט בהםעם פסיק, מכיוון שזה מפריד בין כל אחד מהם. כל פריט צריך גם לעלות על שורה חדשה, שוב עם ארבעה חללים לפניו, ממש כמו האפליקציה ב- Settings.py. נגדיר את הרכיב הראשון בתצוגה עם פונקציית מחרוזת ריקה, על מנת ליצור תצוגה הפועלת בספריית השורש של שרת האינטרנט. עכשיו URLs.py שלך צריך להיראות כמו
from feed import views as feed_views
urlpatterns = [
path('', feed_views.hello, name='hello'),
]
זה הבסיס ליצירת אתר עם Django שהוא סטטי לחלוטין. על מנת ליצור אתר דינמי יותר בו נוכל להתחיל במטמון מידע, כמו תמונות, סרטונים, שמע ועוד, נצטרך להשתמש בדגמים, אותם נחקור בהמשך. לעת עתה, בואו נבדוק את הקוד שלנו ונפעל את השרת. כדי לבדוק את הקוד שגיאות, הפעל:
python manage.py check
אם יש הודעות שגיאה, עליך לבדוק בזהירות את השינויים שביצעת באפליקציה שלך ולראות אם יש משהו שצריך לתקן, כמו חלל זרים או חסר, תו נוסף, מחרוזת לא סגורה, כל שגיאת הקלדה, בכל טעות אופי שנמחק, או כל דבר אחר. קריאת הודעת השגיאה (אם יש לך אחת), אתה אמור להיות מסוגל לראות את הנתיב לקובץ שיצרת או ערכת יחד עם מספר שורה, אז בדוק את הקובץ והקו הזה ובדוק אם אתה יכול לתקן משהו שיש שם ו אם תיקנת את הבעיה, הפעל את הפקודה לעיל שוב. כאשר התוכנה שלך מוכנה להפעלה ועובדת, תראה את הפלט "בדיקת מערכת לא זיהתה שום בעיות." עכשיו אתה מוכן ללכת. הפעל את השרת עם:
python manage.py runserver 0.0.0.0:8000
כעת פתחו דפדפן אינטרנט ונווט אל http: // localhost: 8000. אתה אמור לראות את הטקסט המוחזר בסוגריים וציטוטים של פונקציית HTTPRESPONSE בתצוגה שלך. זו רק דוגמא בסיסית, אבל אם היית עושה את זה עד כה, אתה מבין את היסודות של עבודת לינוקס, באש, פייתון ודג'נגו. בואו נחפור עמוק יותר במודלים של מסדי נתונים, ונחקור את הכוח של כיתת פייתון באחסון מידע. לאחר מכן, נתחיל לאחוז ב- HTML ו- CSS לפני שנהפוך את האתר שלנו למציג מלא, גמיש ומאובטח באמצעות JavaScript ולמידת מכונה.
השיעורים מאוחסנים בדגמים. Py של האפליקציה שלך. באמצעות NANO, ערוך אפליקציה/models.py והוסף כיתה חדשה. מחלקה מוגדרת עם הגדרת הכיתה ומעבירה סכום -על ממנו הוא יורש, במקרה זה מודלים. מודל. שם השיעור מגיע לאחר הגדרת הכיתה, ואחרי הגדרת הכיתה א ': (קולון) משמש, לפני שתכונות ההגדרות של התכונות והגדרות הפונקציה הקשורות לכיתה. הכיתה שלנוזקוק למזהה בו אנו יכולים להשתמש כדי לאחזר אותו ולשמור עליו ייחודי, והוא גם זקוק לשדה טקסט כדי לאחסן מידע כלשהו. בהמשך אנו יכולים להוסיף חותמת זמן, קבצים, בוליאנים (הגדרות אמיתיות או שווא שיכולות לעזור לקוד שלנו לקבל החלטות מה לעשות עם הדגם, וניתן להשתמש בהן כדי למיין אותו), מופע כדי לקשור את הדגם למשתמש שנרשם לשרת ועוד. בואו נפרק את הקוד
from django.db import models # היבוא המשמש להגדרת הכיתה שלנו ותכונותיו
class Post(models.Model): # ההגדרה של הכיתה שלנו עצמה
id = models.AutoField(primary_key=True) # המזהה של המודל שלנו, מפתח שנוצר אוטומטית שיאפשר לנו לשאול את הדגם, לשמור עליו ייחודי, והוא שימושי כשאנחנו צריכים ליצור אינטראקציה עם הדגם לאחר שנוצר.
text = models.TextField(default='') # התכונה חנויות הכיתה שלנו, במקרה זה, טקסט כלשהו, מחליפה למחרוזת ריקה.
סגור ושמור את הקובץ כפי שעשינו קודם כדי לסיים.
ישנם שדות ואפשרויות רבות אחרות שנחקור כאשר אנו מעדכנים כיתה זו ככל שהתפתחה האפליקציה שלנו, אך זהו הצרכים הבסיסיים של יצירת אפליקציה לפרסום טקסט כלשהו. עם זאת, מודל זה לא יעבוד לבד. כמתואר קודם, נצטרך תצוגה מותאמת אישית ותבנית כתובת אתר מותאמת אישית כדי לגרום למודל זה לעבוד, ואנחנו נצטרך גם טופס יחד עם תבנית. בואו נחקור את הטופס קודם.
כדי להגדיר טופס, ערוך אפליקציה/forms.py עם ננו והוסף את השורות הבאות. נצטרך שני יבוא, מחלקת הטפסים שלנו, כמו גם את המודל שיצרנו (Feed.Models.Post), הגדרת מחלקה הדומה למודל, ושדה יחד עם תת -סוג שנקרא Meta שיגדיר את המודל שהצורה מתקשרת עִם. לטופס יכול להיות גם פונקציית אתחול שמגדירה אותה על סמך מידע בבקשה, מודל או אחרת, נחקור זאת בהמשך.
צורות מודל כל כך שימושיות מכיוון שהן יכולות ליצור מודל או גם לערוך מודל,אז אנו נשתמש בהם לשניהם. בואו נגדיר אחד בצורות.
from django import forms
from feed.models import Post
class PostForm(forms.ModelForm):
text = forms.CharField(widget=forms.Textarea)
class Meta:
model = Post
fields = ('text',)
זה היסודות של איך נראים צורה ודגם. ניתן להשתמש בטופס מודל זה כדי להפעיל או לערוך פוסט, ולשנות את הטקסט שהוא מכיל. נסתכל על שילוב טופס זה בתצוגה הבאה. ראשית, בואו נעשה את ההגירה ונעביר את מסד הנתונים כך שהקוד שלנו יוכל לקיים אינטראקציה עם הדגם כאשר הוא פועל. לשם כך, הפעל את הפקודות הבאות:
python manage.py makemigrations
python manage.py migrate
זה ייקח דקה לביצוע, אך ברגע שזה יקרה, זה יאפשר לך לגשת לדגם בתצוגות, בתווך או בכל מקום אחר בתוכנה. בואו נמשיך על ידי צפייה בה אנו יכולים לראות את המודל שלנו. ערוך FEED/Views.PY והוסף את הקוד הבא, כאמור. לא תצטרך להוסיף שום דבר לאחר סימן #, קוד זה הערות המשמשות לציון מידע על הקוד. נתחיל בייבוא המודל שלנו בתצוגות, ונוסיף אותו להקשר בו אנו יכולים להעביר אותו בתבנית כרשימה לתצוגה. בשלב הבא נוסיף תבנית בה אנו יכולים להעניק את הטופס ואת הדגם עם כפתור ליצירת אובייקט חדש המבוסס על הדגם ולפרסם אותו לשרת. זה נשמע מסובך, אז בואו פשוט ניקח את זה צעד אחר צעד. לפני שנסיים את התצוגה, בואו ניצור תבנית שפשוט הופכת את הדגם וודא שנוכל לראות אותו על ידי יצירת פוסט חדש במעטפת. כך נראה התצוגה הזו:
from feed.models import Post
from django.shortcuts import render, redirect
from django.urls import reverse
def feed(request):
posts = Post.objects.all() # שאילתה את כל הפוסטים במאגר עד כה
return render(request, 'feed/feed.html', {
'posts': posts,
})
כל זה נראה די פשוט עד שנגיע לתחתית. העבר, הערך שהוחזר על ידי הפונקציה במקום בתגובה HTTP כמו הדוגמה הקודמת, תמיד לוקח בקשה כקלט הראשון שלה, מקבל הקשר (במקרה זה הפוסטים בבסיס הנתונים), שכעת ניתן להעביר בתבנית , ומחזיר את התבנית המוגדרת בפונקציה. התבנית הולכת להיות מסמך HTML עם מעט שפה בשם Jinja2, מה שהופך את המידע של פייתון ל- HTML.
כדי להתחיל ליצור תבניות, ערוך שני ספריות בעדכון.
mkdir feed/templates
mkdir feed/templates/feed
בשלב הבא, ערוך תבנית בספריה שלמעלה, הזנה/תבניות/הזנה והוסיפו את הקוד לדוגמה זו. בואו נסתכל על התבנית לדוגמא זו.
<!doctype HTML>
<html>
<body>
<legend>Feed</legend>
<hr>
{% for post in posts %}
<p>{{ post.text }}</p>
{% endfor %}
</body>
</html>
זוהי תבנית פשוטה מאוד. זה מגדיר פתיחה וסגירת תגי HTML, תג סוג מסמך, תג גוף עם כותרת אגדה, תג הפסקה שמוסיף שורה קטנה על המסך, ולולאה שהופכת כל פוסט ברשימת הפוסטים כפסקה ב התבנית. זה כל מה שנדרש כדי לפנות פוסטים, אך עדיין אין במאגר. בואו ניצור כמה עם הקליפה. אנחנו יכולים להריץ את הקליפה עם Manage.py
python manage.py shell
עכשיו, בואו נביט את דגם הפוסט שלנו
from feed.models import Post
בשלב הבא ניצור פוסט פשוט עם מחרוזת ונצא מהקליפה. המחרוזת יכולה להיות כל דבר, כל עוד הטקסט התקף.
Post.objects.create(text='hello world')
exit()
לבסוף, נצטרך להוסיף דפוס כתובת אתר לעדכון שלנו. מכיוון שאפליקציית ההזנה שלנו תשתמש בכתובות אתרים מרובות ואנחנו רוצים לשמור על גדלי קבצים קטנים, בואו ניצור כתובות URL מקומיות באפליקציית ההזנה שלנו שנראית כך:
from django.urls import path
from . import views
urlpatterns = [
path('', views.feed, name='feed'),
]
נצטרך גם לערוך את ה- URLs.PY באפליקציית הבסיס, כל מה שהחלטנו לקרוא לזה, זה היה הספרייה הראשונה שיצרנו. ערוך אפליקציה/app.py והוסף את הדברים הבאים לדפוסי כתובת האתר
from django.urls import include # בחלקו העליון
urlpatterns = [
# ... קוד קודם כאן
path('feed/', include(('feed.urls'), namespace='feed')),
]
כעת, כאשר אנו מפעילים את השרת עם Python Manage.py Runserver, נראה את הדף שיצרנו מכיוון שיש לנו את הדגם, התצוגה והתבנית כמו גם את דפוס ה- URL, יחד עם פריטים במאגר. בשלב הבא, בואו ליישם את הטופס שיצרנו ונתחיל ליצור פוסטים משלנו. אבל לפני שנכתוב יותר מדי קוד, בואו נעשה גיבוי באמצעות הסקריפט שכתבתי קודם, גיבוי. הפעל את התסריט הזה במעטפת, המתן כמה רגעים, וכל הקוד יגובה במאגר GIT שלנו.
backup
יישום הטופס הוא פשוט יחסית. אנו נביט את הטופס שלנו, הוסף מטפל בקשת פוסט לתצוגה ונשמור את הפוסט במסד הנתונים לפני הפנייתו לאותה תצוגה. אנו יכולים להשתמש בפונקציית ההפניה שכבר ייבאו, ופונקציה אחרת שנקראה הפוך כדי לקבל את כתובת האתר לתבנית התצוגה. אנו נשאל זאת עם המחרוזת 'הזנת: הזנה' מכיוון שמרחב השמות של התבנית הכלולה הוא הזנה, והתצוגה נקראת גם Feed.
from feed.forms import PostForm
def feed(request):
posts = Post.objects.all() # שאילתה את כל הפוסטים במאגר עד כה
if request.method == 'POST': # טפל בבקשת ההודעה
form = PostForm(request.POST) # צור מופע של הטופס ושמור אליו את הנתונים
if form.is_valid(): # לאמת את הטופס
form.save() # שמור את האובייקט החדש
return redirect(reverse('feed:feed')) # להפנות לאותה כתובת אתר עם בקשת GET
return render(request, 'feed/feed.html', {
'form': PostForm(), # הקפד להעביר את הצורה להקשר כדי שנוכל לספק אותה.
'posts': posts,
})
כעת, נצטרך לעדכן את התבנית כדי להסביר את הטופס החדש. אנו יכולים לעשות זאת באמצעות
https://glamgirlx.com/he/practical-web-based-deep
https://glamgirlx.com/he/practical-web-based-deep -
השאירו לי טיפ בביטקוין באמצעות הכתובת הזו: 3KhDWoSve2N627RiW8grj6XrsoPT7d6qyE
© Glam Girl X 2025