دوشنبه ۰۶ شهریور ۰۲ | ۱۱:۲۲ ۱۵۶ بازديد
معماری MVT
MVT (Model View Template) یک الگوی پیاده سازی طراحی اپلیکیشن در مشهد نرمافزار میباشد.
این موسسه ای از سه مؤلفه اساسی Model View و Template میباشد.
در بنا شده در این معماری سبک به مدیر مقر داده امداد می نماید.
این یک لایه دسترسی به داده میباشد که اطلاعات را مدیر می نماید.
پوسته یک لایه ارائه میباشد که نصیب رابط کاربری را کاملا رئیس می نماید.
View برای اجرای منطق تجاری و تعامل با یک سبک برای جابجایی اطلاعات و ارائه یک سر مشق به کارگیری می گردد.
جنگو اگرچه از الگوی MVC تقلید می نماید، ولی قراردادهای خویش را مراقبت می نماید.
براین اساس، در دست گرفتن به وسیله خویش چارچوب اعمال می گردد.
کنترلر مستقل ای نیست و نرم افزار بی نقص مطابق Model View و Template میباشد.
به همین عامل میباشد که به آن اپ MVT میگویند.
نمودار ذیل را ملاحظه کنید که جریان در اختیار گرفتن مطابق MVT را علامت میدهد.
در اینجا، استفاده کننده درخواست یک منبع برای جنگو می نماید، جنگو تحت عنوان یک در اختیار گرفتن کننده شغل می نماید و منبع مو جود در URL را رسیدگی می نماید.
چنانچه URL نقشه میدهد ، نمایی نامیده میشود که با سبک و پوسته تعامل داراست، یک سر مشق را ارائه مینماید.
جنگو به استفاده کننده جواب میدهد و یک سر مشق را تحت عنوان جواب ارسال می نماید.
Model
در شناخت با جنگو، یک سبک کلاسی میباشد که برای فیلدها و متدهای ضروری به کارگیری میگردد.
هر model class به یک جدول در مقر داده نگاشت میگردد.
Django Model یک ذیل کلاس از django.db.models.Model میباشد و هر فیلد از کلاس model یک فیلد (ردیف) مقر داده را آرم میدهد.
جنگو یک API انتزاعی مقر داده را در مشت ما قرار میدهد که به ما قابلیت میدهد یک رکورد را از جدول نقشه برداری گردیده تولید، بازیابی، آپ دیت رسانی و حذف کنیم.
سبک در پوشه Models.py تعریفوتمجید گردیدهاست.
این پوشه میتواند خویش دربرگیرنده یک سری سبک باشد.
بیایید یک نمونه را در اینجا ببینیم، ما در درحال حاضر ساخت یک Employee سبک هستیم که دارنده دو فیلد first_name و last_name میباشد.
from django.db import models
class Employee(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)
فیلدهای first_name و last_name بهتیتر خصوصیتهای کلاس معلوم می شوند و هر خصوصیت به ردیف مقر داده نگاشت میشود.
این سبک یک جدول به صورت تحت در مقر داده ساخت و ساز می نماید.
CREATE TABLE appname_employee (
"id" INT NOT NULL PRIMARY KEY,
"first_name" varchar(30) NOT NULL,
"last_name" varchar(30) NOT NULL
);
جدول ساخت گردیده دربردارنده یک فیلد شناسه ساخت و ساز گردیده اتومات میباشد.
اسم جدول ترکیبی از اسم اپلیکیشن و اسم سبک میباشد که قادر است بیشتر تغییرو تحول نماید.
Register / Use Model
بعداز ساختوساز یک سبک، سبک را در INSTALLED_APPS درون settings.py تصویب نمائید.
مثلا :
INSTALLED_APPS = [
#...
'appname',
#...
]
فیلد های سبک :
فیلدهای تعریف و تمجید گردیده در کلاس Model، اسم ردیف های جدول نگاشت گردیده می باشند.
اسم فیلدها نباید لغات ذخیره پایتون مانند clean ، save یا این که delete و … باشد.
جنگو گونه های فیلدهای داخلی گوناگون و بسیار متعددی را ارائه میدهد که بعضی از آنان عبارتند از :
Field Name Class Particular
AutoField class AutoField(**options) این یک IntegerField میباشد که به صورت خود کار ارتقاء مییابد.
BigAutoField class BigAutoField(**options) این یکی درست 64 بیتی میباشد، بسیار مشابه به AutoField با این تفاوت که ضمانت گردیده است که اعداد 1 تا 9223372036854775807 را در خویش مکان دهد.
BigIntegerField class BigIntegerField(**options) این یکی درست 64 بیتی میباشد، بسیار مشابه به یک IntegerField با این تفاوت که ضمانت گردیدهاست که اعداد از -9223372036854775808 تا 9223372036854775807 را در خویش مکان دهد.
BinaryField class BinaryField(**options) فیلدی برای ذخیره داده های باینری نپخته.
BooleanField class BooleanField(**options) یک فیلد صحیح/اشتباه. ویجت هیبت پیش فرض برای این فیلد یک CheckboxInput میباشد.
CharField class DateField(auto_now=False, auto_now_add=False, **options) این یک تاریخ میباشد که در پایتون با یک مثال datetime.date نشان داده میشود.
DateTimeField class DateTimeField(auto_now=False, auto_now_add=False, **options) It is a date, represented in Python by a datetime.date instance.
DecimalField class DecimalField(max_digits=None, decimal_places=None, **options) این یکی اعشاری با تمرکز اثبات میباشد که در پایتون با یک مثال اعشاری نمایش داده می شود.
هر فیلد به آرگومان هایی نیاز دارااست که برای تهیه و تنظیم خصوصیت های ردیف به کار گیری میشود.
مثلا، CharField برای انتخاب مقر داده varchar به mac_length نیاز دارااست.
آرگومان های رایج در دسترس برای همگی گونه های فیلدها. تمامی ازروی اراده می باشند.
Field Options Particulars
Null جنگو مقادیر خالی را به طور NULL در مقر داده ذخیره می نماید.
Blank برای خالی بودن فیلد مجاز استعمال میگردد.
Choices یک تکرار (برای مثالً یک لیست یا این که تعدادی تایی) از 2 تایی که تحت عنوان گزینش برای این فیلد به کارگیری میگردد.
Default مقدار پیش فرض فیلد. این میتواند یک مقدار یا این که یک شیء قابل فراخوانی باشد.
help_text متن “راهنما” مازاد برای اکران با ویجت هیبت. حتی در صورتیکه فیلد شما در هیبت به کار گیری نشده باشد، برای مستندسازی موثر میباشد.
primary_key این فیلد کلید مهم سبک میباشد.
Unique این فیلد بایستی در مجموع جدول منحصربهفرد باشد.
مثلا ما یک Student سبک تولید کردیم که دربردارنده کد ذیل در فولدر models.py میباشد.
اصول روانشناسی طراحی اپلیکیشن که باید بدانید