הקדמה
Django הוא כלי פרי וקוד פתוח לפיתוח אתרי אינטרנט, הכתוב בשפת פייתון. כלי זה מאפשר סקאלביליות, ניצול מחדש ופיתוח מהיר.
במדריך זה, תלמד כיצד להקים את היסודות הראשוניים של אתר בלוג עם חיבורים למסד נתונים של MySQL. זה יכלול יצירת מבנה הבסיס של אפליקציית האינטרנט לבלוג באמצעות django-admin
, יצירת מסד הנתונים של MySQL, וחיבור אפליקציית האינטרנט למסד הנתונים.
Django יספק לך סביבת פיתוח כדי לעבוד על אפליקציית האינטרנט לבלוג שלך, אך תצטרך לבצע צעדים נוספים לפני שתוכל להעלות את הבלוג שלך לאינטרנט.
דרישות מוקדמות
כדי לעקוב אחרי המדריך הזה, יהיה עליך להפקיד:
- שרת Ubuntu 22.04 עם משתמש בעל הרשאות sudo וגישה לראשיות, וחומת אש. עקוב אחרי המדריך המפורט שלנו להגדרת שרת התחלתי Ubuntu 22.04.
- MySQL מותקן כדי לשרת כמסד נתונים. ניתן להגדיר זאת על ידי התקנתו בהתאם להדרכה שלנו על איך להתקין MySQL על Ubuntu 22.04.
- A Python environment set up. For this, follow our tutorial on How To Install Python 3 and Set Up a Programming Environment on Ubuntu 22.04
.
כאשר הכל מותקן ומוגדר, תוכל להמשיך לשלב הראשון.
שלב 1 — יצירת מסד הנתונים
דג'נגו תומך במספר מערכות ניהול מסדי נתונים פופולריות, אך המדריך הזה מתמקד בחיבור של דג'נגו למסד נתונים MySQL. כדי לעשות זאת, עליך ליצור מסד נתונים במקום ה MySQL שלך ופרופיל משתמש MySQL שדג'נגו יכולה להשתמש בו כדי להתחבר למסד הנתונים.
כדי להגדיר זאת, יש להתחבר למסד הנתונים שלך כמשתמש ה MySQL root באמצעות הפקודה הבאה:
תדע שאתה בשרת MySQL כאשר המפתח משתנה:
תבדוק את מסדי הנתונים הנוכחיים באמצעות הפקודה הבאה:
הפלט שלך יהיה דומה לזה שלמטה, בהנחה שלא יצרת מסדי נתונים עדיין:
Output+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
כברירת מחדל, יהיו לך 4 מסדי נתונים שנוצרו מראש: information_schema
, MySQL
, performance_schema
ו־sys
. אין צורך לגעת בהם, מאחר והם מכילים מידע חשוב עבור שרת ה MySQL עצמו.
במקום זאת, צור את מסד הנתונים הראשוני שיכיל את הנתונים של הבלוג שלך.
ליצור מסד נתונים ב־MySQL, הריצו את הפקודה הבאה, בשימוש בשם משמעותי עבור המסד הנתונים שלכם:
בהצלחה ביצור המסד הנתונים, הפלט יהיה הבא:
OutputQuery OK, 1 row affected (0.00 sec)
וודאו שהמסד נתונים כעת מופיע ברשימת המסדים הזמינים:
המסד הנתונים blog_data
צריך כעת להופיע בין המסדים הכלולים בפלט:
Output+--------------------+
| Database |
+--------------------+
| information_schema |
| blog_data |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec)
לבצע את זה, יש ליצור חשבון משתמש נפרד ב־MySQL שבו Django ישתמש כדי לפעול על המסד הנתונים החדש. יצירת מסדי נתונים וחשבונות ספציפיים יכולה לתמוך בך מנקודת מנהל ואבטחה. נשתמש בשם djangouser במדריך זה. תוכל להשתמש בשם שתבחר, אך יכול להיות מועיל לבחור שם מתאר.
עכשיו עליכם ליצור את החשבון, להגדיר סיסמה ולהעניק גישה למסד הנתונים שיצרתם. ראשית, צרו את המשתמש והגדירו את הסיסמה שלו על ידי הקלדת הפקודה הבאה. זכרו לבחור סיסמה חזקה עבור מסד הנתונים שלכם על ידי החלפת password
בדוגמה זו:
הודיעו למסד הנתונים ש־djangouser צריך לקבל גישה מלאה למסד הנתונים שהגדרתם:
עכשיו יש לכם מסד נתונים וחשבון משתמש, כל אחד נוצר במיוחד עבור Django. נפלוש את ההרשאות כך שהמופע הנוכחי של MySQL יודע על השינויים האחרונים שביצעתם:
עם זאת, ניתן לצאת משרת MySQL על ידי כתיבת EXIT;
או לחיצה על CTRL + D
.
שלב 2 — יצירת קובץ אפשרות MySQL
במקום לציין את פרטי החיבור שלך ל־MySQL בקובץ התצורה של Django, תוכל לאחסן אותם בקובץ אפשרות. הרבה תוכנות MySQL יכולות לקרוא קבצי אפשרות — שגם נקראים קבצי הגדרות — למידע כגון אפשרויות התחלה או פרטי חיבור. זה יכול להיות נוח, מאחר ותצטרך לאחסן את פרטי ההתחברות שלך למסד הנתונים במקום אחד בלבד.
פתח את קובץ התצורה my.cnf
עם עורך הטקסט המועדף עליך כדי לעדכן את פרטי החיבור שלך ל־MySQL. כאן נשתמש ב־nano
:
הוסף את השורות הבאות וכלול את המידע הרלוונטי שלך:
…
[client]
database = blog_data
user = djangouser
password = your_actual_password
default-character-set = utf8
שים לב ש־utf8
מוגדר כקידוד ברירת המחדל. זהו דרך נפוצה לקידוד נתוני יוניקוד ב־MySQL. כאשר אתה בטוח שהפרטים שלך נכונים, שמור וסגור את הקובץ. אם השתמשת ב־nano
כדי לערוך את הקובץ, תוכל לעשות זאת על ידי לחיצה על CTRL + O
כדי לשמור את הקובץ ואז CTRL + X
כדי לסגור את העורך.
לאחר שערכת את הקובץ, הפעל מחדש את MySQL כדי שהשינויים יכנסו לתוקף:
שים לב שהפעלת מחדש של MySQL דורשת מספר שניות, אז נא להיות סבלני.
שלב 3 — יצירת תבנית הפרויקט הראשונית של Django
בשלב זה, תניח את היסודות ליישום שלך על ידי יצירת תבנית הפרויקט באמצעות הפקודה django-admin
.
נווט אל הספרייה שבה תרצה לבנות את אפליקציית הבלוג שלך. בתוך הספרייה ההיא, צור ספרייה ספציפית לבניית האפליקציה. קרא לספרייה משהו שמשמעותי עבור האפליקציה שאתה בונה. כדוגמה, נקרא לה my_blog_app
:
כעת, נווט אל הספרייה שנוצרה חדשה:
לאחר מכן, התחבר לסביבת התכנות שבה תרצה לעבוד ב-Django. ניתן להשתמש בסביבת קיימת או ליצור אחת חדשה. הפקודה הבאה תיצור סביבת חדשה בשם env
, אך כדאי להשתמש בשם שמשמעותי עבורך:
כאשר היא נוצרת, תוכל להפעיל אותה:
עכשיו התקן את Django בתוך הסביבה הזו אם עדיין לא עשית זאת:
תוך נמצאים בתיקיית my_blog_app
, צור פרויקט על ידי הרצת הפקודה הבאה:
וודא שהפעלה בוצעה על ידי ניווט לתיקיית blog/
:
לאחר מכן הרץ ls
כדי לוודא שנוצרו הקבצים והספריות הדרושים בתוך תיקיית הפרויקט:
הפלט יציין את תיקיית ה-blog
וקובץ manage.py
:
Outputblog manage.py
עכשיו שיצרת ספריית פרויקט המכילה את ההתחלה הראשונית של אפליקציית הבלוג שלך, תוכל להמשיך לשלב הבא.
שלב 4 — התקנת מחבר MySQL למסד נתונים
כדי להשתמש ב-MySQL בפרויקט שלך, תצטרך ספריית מחבר מסד נתונים Python 3 התואמת את Django. בשלב זה נדגים כיצד להתקין אחד מסוגי המחברים למסד נתונים כאלו, mysqlclient
, אשר היא גרסה מופצת מחדש של MySQLdb
.
ראשית, התקן את הכותרות והספריות הדרושות לפיתוח MySQL:
באשכול, השתמש ב־pip
כדי להתקין את חבילת ה־wheel
. Wheel היא פורמט אריזה המשמש ב-Python להתקנת מודולים מאינדקס חבילות Python. התקנת תוכניות Python מחבילות wheel בדרך כלל מהירה ויעילה יותר מהבניית חבילות מקורם. כדי להתקין ולעבוד עם תוכניות שאורזו כ-wheel, עליך לוודא שחבילת ה־wheel
מותקנת:
לאחר מכן, המשך להתקנת mysqlclient
:
הפלט שלך יהיה דומה לפלט הבא, המאשר כי הלקוח הותקן בהצלחה:
Output...
Successfully installed mysqlclient-2.1.1
כעת התקנת בהצלחה את לקוח MySQL באמצעות ספריית מחבר PyPi mysqlclient
.
שלב 5 — עריכת הגדרות
כאשר הפעלת את django-admin
בעבר, נוצר קובץ הגדרות עבור Django בשם settings.py
. עליך לשנות מספר מההגדרות המוגדרות כברירת מחדל בקובץ זה כדי לקבל פעולה תקינה.
כדי לערוך את הקובץ, פתח את הנתיב לקובץ בעזרת עורך הטקסט שלך:
כדי שהבלוג שלך יקבל את השעה הנכונה הקשורה לאזור שלך, תוכל לערוך את קובץ ה-settings.py
כך שישתמש באזור הזמן הנוכחי שלך. תוכל להשתמש ברשימת אזורי הזמן הזו כאפשרות. לדוגמה שלנו, נשתמש באזור הזמן של America/New_York
.
בתוך הקובץ, נווט לשדה TIME_ZONE
בסעיף התחתון של הקובץ:
...
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'
USE_I18N = True
USE_L10N = True
USE_TZ = True
...
שנה את השורה של TIME_ZONE
, כך שתהיה מוגדרת לאזור הזמן הנוכחי שלך. בדוגמה שלנו, נשתמש באזור הזמן של ניו יורק:
...
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'America/New_York'
USE_I18N = True
...
שמור על פתוח את הקובץ משום שבשלב הבא עליך להוסיף נתיב לקבצי הסטטיים שלך. הקבצים שמוכנסים מהשרת של היישום האינטרנטי שלך ב-Django מתייחסים כ־קבצים סטטיים. זה יכול לכלול כל קבצים הנחוצים כדי להציג את הדף האינטרנטי השלם, כולל JavaScript, CSS ותמונות.
עבור אל סוף קובץ ה-settings.py
והוסף STATIC_ROOT
:
…
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
...
עכשיו שהוספת את אזור הזמן והנתיב לקבצים סטטיים, הוסף את כתובת ה-IP שלך לרשימת המארחים המורשים. נווט אל השורה בקובץ settings.py
שבה כתוב ALLOWED_HOSTS
, זה יהיה לעבר של קובץ settings.py
. הוסף את כתובת ה-IP של השרת שלך, מוקף בגרשיים יחידות, בין הסוגריים המרובעים:
...
ALLOWED_HOSTS = ['your_server_IP_address']
...
הבא, הוסף את מודול ה-OS של פייתון שמספק פונקציות שונות לספריות. בלעדיו, תקבל שגיאה בעת הגדרת המשתמש המנהל להתחיל להשתמש בממשק ה-Django. כדי לעשות זאת, עליך לייבא את מודול ה-os
שיעבוד במערכת ההפעלה שלך. הוסף את השורה import os
מעל לשורה from pathlib import Path
:
...
import os
from pathlib import Path
...
עד כה ערכת את קובץ ה-settings.py
שלך כך שהאזור הזמן הנכון הוגדר. גם הוספת את הנתיב לקבצים הסטטיים שלך, הגדרת את כתובת ה-IP שלך כ-ALLOWED_HOST
עבור היישום שלך, וייבאת את מודול ה-OS של פייתון כדי לעזור לך להגדיר משתמש מנהל מאוחר יותר.
הקטע האחרון שיש להוסיף לקובץ שלך הוא פרטי החיבור למסד נתונים כדי לחבר את היישום שלך לבלוג Django ל-MySQL. לשם כך, מצא את המילון DATABASES
בתוך הקובץ. הוא ייראה כמו הבא בברירת מחדל:
…
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
...
החלף את אפשרויות ה-ENGINE
וה-NAME
של מילון ה-DATABASES
בשורות הבאות:
...
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'OPTIONS': {
'read_default_file': '/etc/mysql/my.cnf',
},
}
}
...
השורה 'ENGINE': 'django.db.backends.mysql'
אומרת ל-Django להשתמש בגב הנתונים המובנה של MySQL. אפשרות read_default_file
מצביעה על /etc/mysql/my.cnf
, קובץ האפשרויות של MySQL שערכת לפני כן. זה מודיע ל-Django היכן למצוא את פרטי החיבור הרלוונטיים כדי להתחבר למסד הנתונים שיצרת בשלב 1.
שים לב ש-Django קורא את הגדרות חיבור למסד הנתונים לפי הסדר הבא:
OPTIONS
NAME
,USER
,PASSWORD
,HOST
,PORT
- קבצי אפשרויות של MySQL
על ידי מצביעה של Django לקובץ האפשרויות של MySQL במסגרת הגדרת OPTIONS
כמו בדוגמה זו, זה ייקח עדיפות מעל כל הגדרת NAME
, שברגע נתון זה הוא יתעלם מהקובץ אפשרויות אם היית מצביע עליו מחוץ להגדרת OPTIONS
.
בנקודה זו, אתה יכול לשמור ולסגור את הקובץ.
הבא, בדוק שינויי המיגרציה על ידי הרצת הפקודה הבאה:
לאחר מכן, הרץ את migrate
כדי לוודא שהשינויים ייחושבו:
עכשיו שהשינויים שלך עברו מיגרציה, אתה יכול ליצור משתמש מנהל לשימוש בממשק הניהול של Django. עשה זאת עם הפקודה createsuperuser
:
יתבקש ממך לספק שם משתמש, כתובת דוא"ל, וסיסמה למשתמש שלך.
לאחר שתמלא את המידע הזה, תוכל להמשיך להתאים את הגדרות הגנה של הגדרת הגישה כדי לאפשר בדיקות.
שלב 6 — התאמת הגדרות הגנה בגיבוי
לפני בדיקת אפליקציית הווב Django שלך, עליך לוודא שהגדרות הגיבוי שלך הותאמו. התחל על ידי שינוי ההגדרות של ufw
כך שיאפשרו גישה לפורט 8000
:
בדוק את המצב כדי לוודא שהגדרות הרשאה אלו עודכנו בהצלחה:
OutputStatus: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
8000 ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
8000 (v6) ALLOW Anywhere (v6)
הגדרות הגיבוי שלך כעת הותאמו בהצלחה כדי לאפשר לבדוק את החיבור שלך בשלב הבא.
שלב 7 — בדיקת חיבור MySQL לאפליקציה
כעת תוכל לוודא שהגדרות ב-Django זוהו כראוי את שרת ה-MySQL שלך. תוכל לעשות זאת על ידי הפעלת השרת. אם יש כשל, זה אומר שהחיבור אינו עובד כראוי. אחרת, החיבור תקין.
נווט תחילה לתיקייה הבאה:
משם, הפעל את הפקודה הבאה:
תקבל פלט דומה לזה המופיע:
OutputPerforming system checks...
System check identified no issues (0 silenced).
July 19, 2022 - 13:26:08
Django version 4.0.6, using settings 'blog.settings'
Starting development server at http://your-server-ip:8000/
Quit the server with CONTROL-C.
הערה: תשים לב שיש לך התקנות לא מיושמות בפלט. אל דאגה, זה לא משפיע על התקנת האפליקציה הראשונית שלך, ותוכל להמשיך.
עקוב אחר ההוראות מהפלט ועקוב אחר הקישור המוצע, http://your-server-ip:8000/, כדי לראות את יישום האינטרנט שלך ולוודא שהוא עובד כראוי.
אם הדף שלך נראה דומה לצילום המסך שמוצג למעלה, יישום ה-Django שלך פועל כצפוי.
כאשר אתה מסיים לבדוק את היישום שלך, לחץ על CTRL + C
כדי לעצור את פקודת ההרצה של runserver
. זה יחזיר אותך לסביבת התכנות שלך.
כאשר אתה מוכן לצאת מהסביבת ה-Python שלך, תוכל להפעיל את הפקודה deactivate
:
ביטול הפעלת הסביבה שלך יחזיר אותך למוד הפקודה של הטרמינל.
מסקנה
במדריך זה, יצרת את היסוד הראשוני של הבלוג שלך ב-Django. התקנת, הגדרת, והתחברת ל-MySQL לצד האחורי של Django. כמו כן, הוספת פרטים חשובים לקובץ ה-settings.py
של היישום שלך כגון TIME_ZONE
, ALLOWED_HOSTS
, import os
, ופרטי מסד נתונים להתחברות היישום שלך ל-MySQL. כמו כן, כינית את הגדרות האש כדי לוודא שהבדיקה תעבור בצורה חלקה.
עכשיו שההגדרות הבסיסיות והתצורות הן שלמות, תוכל להתחיל לפתח מודלים ולהחיל העברות ביישום ה-Django שלך.