למסגרת האינטרנט של Django יש ארכיטקטורת דגם-view-template (MVT), מה שהופך אותה למסגרת היחידה שתזדקק לה כדי ליצור אתר אינטרנט או יישום אינטרנט מלא. מסגרת Python זו מאפשרת לך ליצור מודלים שמייצרים מסדי נתונים ולעבד תבניות HTML דינמיות לממשק המשתמש באמצעות תצוגות.
כוחו של ג'נגו אינו סוד; זה מהיר, אמין, ניתן להרחבה ומאובטח. האמינות, כמו גם המדרגיות של תוכנה זו, מסתמכת על ארכיטקטורת ה-MVT שלה. ובמאמר זה, תלמדו בדיוק כיצד פועלת ארכיטקטורת ה-MVT של Django.
מהו הדגם של ג'נגו?
המודל בארכיטקטורת ה-MVT של Django מגדיר את המבנה וההתנהגות של הנתונים שאתה רוצה לאחסן דרך האתר שלך. כל מודל Django שאתה יוצר יוצר טבלת מסד נתונים מתאימה, כאשר כל תכונה של המודל הופכת לשדה בטבלה.
ממשיכים עם ההגדרה שלנו מאמר מבוא על ג'נגו, אתה יכול ליצור מודל עבור המוכרים. למוכר יכול להיות מודל מוכר שיש בו מידע אישי, כגון שם ופרטי התקשרות, ודגם קשור לפריטים שכל מוכר מוכר.
מבנה הקובץ לדוגמה הקיים של פרויקט Django
האתר שלי/
האתר שלי/
_pycache_
_init_.py
asgi.py
settings.py
urls.py
wsgi.py
מוכרים/
הֲגִירָה
_init_.py
admin.py
apps.py
models.py
test.py
views.py
db.sqlite3
manage.py
יצירת דגמי ג'נגו
אם תסתכל מתחת לקטע האפליקציה של המוכרים במבנה הקבצים למעלה, תראה קובץ בשם models.py. זה המקום שבו תיצור את כל דגמי ה-Django שלך עבור קטע המוכרים באתר שלך. כל מודל שתיצור יהיה תת-מחלקה של ה-API של המודל של Django, וזו הסיבה שכל דג'נגו נוצר models.py לקובץ יש ברירת מחדל ייבוא מודלים.
הקובץ models.py
מדגמי ייבוא django.db
# צור את הדגמים שלך כאן.
מחלקה מוכר (דגמים. דֶגֶם):
first_name = מודלים. CharField (max_length=30)
last_name = מודלים. CharField (max_length=30)
contact_number = דגמים. CharField (max_length=30)
מוצר מחלקה (דגמים. דֶגֶם):
מוכר = דגמים. ForeignKey (מוכר, on_delete=models. אֶשֶׁד)
item_name = מודלים. CharField (max_length=100)
item_quantity = דגמים. IntegerField()
item_price = דגמים. DecimalField (max_digits=9, decimal_places=2)
item_description = מודלים. שדה טקסט()
הקוד למעלה הוא עותק של התוכן המעודכן של model.py קוֹבֶץ. הקובץ יוצר כעת שני דגמים - מוכר ומוצר. מודלים אלה חולקים מערכת יחסים של אחד לרבים, כאשר מוכר אחד יכול להחזיק מוצרים רבים במבצע. אז, לדגם המוצר יש א מפתח זר מהמוכר וא on_delete התכונה מוגדרת ל דגמים. אֶשֶׁד, מה שאומר שכאשר אתה מוחק מוכר, אתה תמחק אוטומטית כל מוצר שיש לו את זה מפתח ראשי כ מפתח זר.
קָשׁוּר: למד פייתון וג'נגו היום עם הקורסים המדהימים האלה ייתכן שתבחין גם שלכל אחד מהדגמים בקוד למעלה אין מפתח ראשי. הסיבה לכך היא ש-Django יפיק אוטומטית א מפתח ראשי אם אתה לא יוצר אחד במפורש.
לפני שתוכל להשתמש במודל כלשהו שאתה יוצר, תצטרך לומר ל-Django היכן למצוא אותו. כדי לעשות זאת, תצטרך לנווט אל settings.py קובץ והכנס את שם המודול המכיל את models.py קובץ, לתוך INSTALLED_APP סָעִיף.
בפרויקט לדוגמה עבור מאמר זה, ה models.py הקובץ נמצא במודול המוכרים. לכן, המעודכן INSTALLED_APP הסעיף ייקרא כך:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'מוכרים',
]
עם הקוד שלמעלה, הדגמים באפליקציית המוכרים גלויים כעת לאתר Django, ועכשיו אתה יכול לעבור להגירות.
ביצוע העברות חשוב מכיוון שתהליך זה הוא דרך להפיץ את השינויים שאתה מבצע במודלים שלך לסכימת מסד הנתונים המתאימה. לכן, בכל פעם שתבצע שינויים במודל שלך, תצטרך לנהל את תהליך ההגירה - שכולל שני שלבים.
שלב ראשון הוא לבצע העברות, שהיא פקודה שיוצרת העברות על סמך השינויים שזוהו ב- models.py קוֹבֶץ. כדי להתחיל את תהליך ההגירה, תצטרך לפתוח את המסוף שלך, לנווט לספרייה שבה יש את פרויקט ה-Django שלך, ולהפעיל את השרת באמצעות הפקודה הבאה:
שרת python manage.py
כשהשרת פועל במסוף אחד, פתח מסוף חדש והזן את הפקודה הבאה:
python manage.py makemigrations
לאחר הביצוע, הטרמינל יפיק את הפלט הבא:
העברות עבור 'מוכרים':
sellers\migrations\0001_initial.py
- צור מודל מוכר
- יצירת מוצר דגם
הפלט שלמעלה מציין בבירור שיש לך כעת העברות לשני דגמים - המוכר והמוצר. כעת אם תנווט אל תיקיית ההעברה במודול המוכרים שלך, תראה שיש לה כעת קובץ חדש בשם 0001_initial.py. בתוך הקובץ הזה, תמצא את ההעברות שיצרת זה עתה.
הקובץ 0001_initial.py
# נוצר על ידי Django 3.2.9 בתאריך 2022-02-26 16:06מ-django.db ייבוא העברות, מודלים
ייבוא django.db.models.deletion
כיתה הגירה (הגירות. הֲגִירָה):
ראשוני = נכון
תלות = [
]
פעולות = [
הגירות. CreateModel(
name='מוכר',
שדות=[
('id', models. BigAutoField (auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('first_name', models. CharField (max_length=30)),
('שם_משפחה', מודלים. CharField (max_length=30)),
('contact_number', דגמים. CharField (max_length=30)),
],
),
הגירות. CreateModel(
name='מוצר',
שדות=[
('id', models. BigAutoField (auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name_item', models. CharField (max_length=100)),
('כמות_פריט', דגמים. IntegerField()),
('מחיר_פריט', דגמים. DecimalField (decimal_places=2, max_digits=9)),
('description_item', models. שדה טקסט()),
('מוכר', דגמים. ForeignKey (on_delete=django.db.models.deletion. CASCADE, to='sellers.seller')),
],
),
]
בכל פעם שאתה מבצע העברה חדשה, תיקיית ההעברה מייצרת גרסה חדשה של קובץ זה.
שלב שני של תהליך ההגירה הוא סוף סוף העברת המודלים. משמעות הדבר היא שאתה מסנכרן את מצב מסד הנתונים עם models.py קובץ, באמצעות ההעברות שיצרת זה עתה ב- 0001_initial.py קוֹבֶץ. אתה יכול להשלים תהליך זה (בזמן שהשרת עדיין פועל) עם הפקודה הבאה:
python manage.py להעביר
מהי התבנית של ג'נגו?
תבניות הן דרך ליצור HTML באופן דינמי עבור פרויקט ה-Django שלך. לכל תבנית ג'נגו יש את .html הרחבה ושילוב של תוכן סטטי ודינאמי. לתבניות Django יש תחביר ייחודי הכולל דרכים חדשות ליצירת משתנים ותגים במסמך HTML.
יצירת תבנית ג'נגו
כדי להציג תבניות באתר המסחר האלקטרוני לדוגמה עבור מאמר זה, תצטרך ליצור ספרייה חדשה במודול המוכרים. הספרייה החדשה הזו שנקראת "תבניות" תהיה הבית של כל מסמכי ה-HTML עבור האפליקציה של המוכר - החל מדף הבית.
הקובץ sellers_home.html
מוכרים | מסחר אלקטרוני
ברוכים הבאים מוכרים!
לאחר שיצרת את התבניות שלך, תצטרך להפוך אותן לגלויות ל-Django על ידי הוספת ספריית התבניות שלך ל- תבניות סעיף של settings.py קוֹבֶץ. המעודכן תבניות הקטע ייראה כך:
תבניות = [
{
'BACKEND': 'django.template.backends.django. DjangoTemplates',
'DIRS': [
# קוד חדש שמצביע על מיקום התבניות
BASE_DIR / 'מוכרים' / 'תבניות'
],
'APP_DIRS': נכון,
'אפשרויות': {
'מעבדי_הקשר': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
כעת, לאחר ש-Django יודע היכן למצוא את התבניות עבור האתר, אתה יכול להמשיך ולעבד אותן לממשק המשתמש באמצעות התצוגה.
מהי המבט של ג'נגו?
ה-View הוא השכבה השנייה של ארכיטקטורת ה-MVT של Django, תבנית היא חסרת תועלת אלא אם תצוגה מעבדת אותה לממשק המשתמש. התצוגה אחראית על קבלת בקשות אינטרנט והחזרת תשובות מתאימות (כולל תבניות). בצורתו הבסיסית ביותר, התצוגה היא פונקציית Python, המאוחסנת ב- view.py קובץ של פרויקט ה-Django שלך.
יצירת Django View
ה view.py הקובץ נמצא במודול המוכרים של פרויקט Django לדוגמה. כשמוכר מבקר באתר שלך, תרצה שהוא יעבור לדף הבית של המוכר. דף הבית הזה תיצור באמצעות תבנית HTML, בדומה לזו שנוצרה בחלק התבנית למעלה.
הקובץ view.py
מ-django.shortcuts ייבוא render
מדד def (בקשה):
עיבוד חוזר (request, 'sellers_home.html')
התצוגה למעלה לוקחת בקשה ומחזירה את תבנית ה-HTML של המוכרים. לכן, בכל פעם שמשתמש מבקר (או מבקש) http://127.0.0.1:8000/sellers/ הם יראו את דף הבית של המוכרים. זה אחרי שאתה יוצר א urls.py קובץ במודול המוכרים.
קובץ urls.py של המוכרים
מנתיב הייבוא של django.urls
מ. ייבוא תצוגות
urlpatterns = [
path('', views.index, name='index'),
]
וכלול את הנתיב למודול המוכרים urls.py קובץ ב- urls.py קובץ הממוקם בספריית Django הראשית.
קובץ האתר urls.py
ממנהל ייבוא django.contrib
מ-django.urls ייבוא כוללים, נתיב
urlpatterns = [
path('sellers/', include('sellers.urls')),
path('admin/', admin.site.urls),
]
כעת כשהתצוגה מוגדרת, אתה יכול להבטיח ששרת Django עדיין פועל ולנווט אליו http://127.0.0.1:8000/sellers/ בדפדפן שלך כדי לראות את דף הבית של המוכרים.
דף הבית של המוכרים
ארכיטקטורת MVT של ג'נגו לעומת ארכיטקטורת MVC
ארכיטקטורת ה-MVT של ג'נגו שונה למדי מארכיטקטורת ה-MVC הפופולרית.
קטע התבניות של ארכיטקטורת ה-MVT פועל באותה צורה כמו התצוגה בארכיטקטורת ה-MVC, בעוד שהתצוגה בארכיטקטורת MVT מציגה איכויות הדומות לבקר ב-MVC ארכיטקטורה. עם זאת, המודלים בשתי הארכיטקטורות פועלים באופן זהה.
החל עקרונות עיצוב של Model-View-Controller על התוכניות שלך לקבלת תוצאות מיידיות. הנה איך להתחיל.
קרא הבא
- תִכנוּת
- תִכנוּת
- פִּיתוֹן
קדיישה קין היא מפתחת תוכנה מלאה וכותבת טכנית/טכנולוגית. יש לה את היכולת המובהקת לפשט כמה מהמושגים הטכנולוגיים המורכבים ביותר; ייצור חומר שניתן להבין בקלות על ידי כל טירון טכנולוגיה. היא נלהבת מכתיבה, פיתוח תוכנות מעניינות ומטיילים בעולם (באמצעות סרטים תיעודיים).
הירשם לניוזלטר שלנו
הצטרף לניוזלטר שלנו לקבלת טיפים טכניים, ביקורות, ספרים אלקטרוניים בחינם ומבצעים בלעדיים!
לחץ כאן כדי להירשם