فریم ورک جنگو (Django) چیست؟
جنگو چیست
جنگو (Django) یکی از وب فریم ورکهای سطح بالای پایتون میباشد که با استفاده از آن میتوان سایتها را به سرعت توسعه داده و امنیت آن را تامین کرد. از آنجایی که توسعه جنگو به دست متخصصان این زمینه صورت گرفته، میتواند اغلب مشکلات مطرح در زمینه توسعه وب سایت ها را حل کند. در این مقاله به مفهوم دقیق جنگو چیست پی خواهیم برد.
در واقع با استفاده از آن تنها باید روی برنامه نویسی تمرکز کنید و نیازی به ایجاد راهحلهای جدید ندارید. جنگو رایگان بوده و جزو فریم ورکهای متنباز می باشد. فریم ورک جنگو در واقع یک چهارچوب متن باز می باشد که در که بصورت رایگان در پایتون نوشته شده است.
مزایا و معایب برنامه نویسی جنگو
جنگو با استفاده از پایتون نوشته می شود:
فریم ورک جنگو با استفاده از زبان برنامه نویسی پایتون پیادهسازی میشود. از این رو کار طراحی وب سایت را برای برنامه نویسان آسانتر کرده است. برنامهنویسان میتوانند با استفاده از قوانین دستوری پایتون، صحت کدها را بررسی کرده و آنها را ذخیره کنند. علاوه بر این میتوانند برخی فعالیتها را بدون نوشتن کد انجام داده و فرآیند توسعه وب سایت را تسریع دهند.
توسعه وب سایتهای سفارشی با سرعت بالا
جنگو یکی از کاملترین فریم ورکهای توسعه وب در پایتون میباشد. قوانین طراحی آن به شکلی برنامهریزی شده که زمان مورد نیاز برای توسعه وب سایت را تا حد امکان کاهش دهند. توسعهدهندگان با استفاده از امکانات جنگو، می توانند به سرعت برای طیف گسترده ای از نیازهای تجاری، وب سایت طراحی کنند. اغلب پایتون نویسانی که برای رسیدن به اهداف پروژه زمان کمی در اختیار دارند، از فریم ورک جنگو استفاده می کنند.
آموزش فریم ورک جنگو شامل تمامی ابزارهای مورد نیاز یک طراح است
برای ایجاد یک وب سایت، توسعه دهندگان به ابزارهای زیادی نیاز دارند. در اغلب زبان های برنامه نویسی برای ایجاد یک وب سایت باید از منابع زیادی کمک بگیرند. اما در فریم ورک جنگو کدهای مربوط به دستورات تغییر پایگاه داده، قالبهای HTML، مسیریابی URL، مدیریت نشست و امنیتی نیز مهیا شده است. این قابلیت منجر به تسریع روند طراحی وبسایت می گردد.
با پایگاه دادهها و سیستم عاملهای بزرگ سازگار است
برای اینکه با مفهوم جنگو چیست آشنا شویم باید بدانیم که این روزها کاربران با دستگاهها و سیستمهای مختلفی به وب سایتها متصل میشوند. از آنجایی که جنگو سیستم عاملهای بزرگی همچون ویندوز، لینوکس و مک را پشتیبانی میکند، قابل دسترس بودن وب سایت را افزایش میدهد. علاوهبراین، به دلیل وجود سیستم ORM در جنگو بهراحتی میتوان با اغلب پایگاه دادهها کار کرد.
امکانات امنیتی جنگو چیست
قابلیت های امنیتی موجود در جنگو منجر می گردد تا وب سایتهای ایجاد شده در برابر حملات امنیتی همچون تزریق اسکریپت از طریق وبگاه، تزریق SQL و جعل درخواست میان وبگاه، ایمن باشند. در عین حال، این فریم ورک میتواند اشتباهات متداول کد نویسی را تشخیص داده و امنیت وب سایت را افزایش دهد.
معایب برنامه نویسی با فریم ورک جنگو چیست
امکانات منحصر به فرد جنگو منجر میشود که برنامه نویس بتواند وب سایتهای بزرگ و پیچیده ای را طراحی کند. اما در ساخت یک وب سایت ساده و کوچک به تمامی این امکانات نیازی نیست و وجود آنها باعث کندشدن سایتهای کوچک میشود.
اگر بخواهید برای طراحی وبسایتهای کوچک از این فریم ورک استفاده کنید، برای تقویت عملکرد وب سایت خود باید به دنبال راه کار باشید.
در یک فرآیند نمی توان چندین درخواست را به صورت همزمان اجرا کرد
اغلب فریمورکهای موجود در بازار میتوانند در آن واحد چندین درخواست را پردازش میکنند اما این امکان در جنگو وجود ندارد.
وابستگی شدت به سیستم ORM
وجود سیستم ORM در این فریم ورک، امکان اتصال به اغلب پایگاه دادهها را فراهم آورده است. اما سیستم ORM تعبیه شده در این فریمورک نسبت به سیستم مشابه در فریمورکهای دیگر، برخی از امکانات قدرتمند را در اختیار ندارد. علاوه بر این به توسعهدهنده اجازه استفاده کامل از امکانات SQL Toolkit و SQLAlchemy در پایتون را نمیدهد.
با این حال جنگو با استفاده از امکانات، افزونهها و ابزارهای پایتون در توسعه وب سایتهای سفارشی، به برنامهنویسان کمک زیادی کرده است. همچنین این فریم ورک مدام در حال تکامل میباشد تا بتواند جوابگوی نیازهای جدید توسعهدهندگان باشد.
ساختار جنگو چیست
در وب سایتهای سنتی وابسته به داده، برنامه تحت وب منتظر یک درخواست HTTP از مرورگر میماند. زمانی درخواستی دریافت میشود، با توجه به URL یا اطلاعاتی که در دادههای ارسالی یا دریافتی قرار دارند، پردازش میکند.
با توجه به درخواست دریافت شده ممکن است اطلاعات از پایگاه داده خوانده شده، در آن ذخیره گشته یا عمل دیگری انجام بگیرد. سپس برنامه پاسخ را به مرورگر ارسال میکند. در فریم ورک جنگو، کد هایی که هر کدام از این درخواست ها را پردازش میکنند، در یک گروه قرار داده شدهاند.
ساختار فریم ورک جنگو
آدرس اینترنتی یا URLS: با اینکه میتوان تمامی درخواستهای دریافتی را از طریق یک تابع مدیریت کرد، اما با نوشتن تابعی جداگانه برای مدیریت هر منبع میتوان برنامه را پایدار تر کرد. با استفاده از نقشه یاب URL میتوان با توجه به هر درخواست HTTP دریافتی، کاربر را به نمای مناسب هدایت کرد.
نما یا View
نما یک تابع مدیریت درخواست است که درخواست HTTP را دریافت کرده و به صورت HTTP به آن پاسخ میدهد. نما برای پاسخ به درخواست، میتواند با استفاده از مدلها به دادههای مورد نیاز دسترسی یافته و پاسخ را به فرم متناسب با قالب درمیآورد.
مدل ها (Models)
مدل ها جزء اشیای پایتون هستند که وظیفه آنها مشخص کردن ساختار دادههای برنامه تحت وب میباشد و امکان مدیریت (حذف، ویرایش و افزودن) رکوردهای پرس و جو و پایگاه داده را فراهم میکند.
قالب ها (Templates)
فایلهای متنی هستند که ساختار یا چیدمان یک فایل را مشخص میکنند (مثل یک صفحه HTML). یک نما میتواند با استفاده از یک قالب HTML، صفحه HTML ایجاد کند و با استفاده از مدلها، محتوای اصلی را نمایش دهد. با استفاده از قالب میتوان ساختار هر گونه فایلی را تعیین کرد (تنها برای تعیین ساختار HTML استفاده نمی شود).
تشریح مدل دادهها (Models.py)
مدل ها ساختار دادههای ذخیره شده را تعیین می کنند. این ساختارها عبارتند از نوع فیلد، مقدار پیش فرض، حداکثر اندازه فیلد، گزینههای لیست انتخاب، متن راهنما و …. میباشند.
بحث مدل ها از بحث پایگاه داده جدا است و تعریف متفاوتی دارد. پس از اینکه پایگاه داده مورد نظر خود را انتخاب کردید، نیازی به تنظیم مستقیم آن ندارید. در واقع شما ساختار مدل خود را طراحی کرده و کدنویسیهای دیگر را نیز انجام میدهید، سپس جنگو کدهای شما را با پایگاه داده مرتبط میکند.
کد زیر نشاندهنده یک مدل ساده برای شی Teams میباشد. کلاس Teams از کلاس Model.models مشتق شده است.
# filename: models.py
from django.db import models
class Team(models.Model):
team_name = models.CharField(max_length=40)
TEAM_LEVELS = (
('U09', 'Under 09s'),
('U10', 'Under 10s'),
('U11', 'Under 11s'),
... #list other team levels
)
team_level = models.CharField(max_length=3, choices=TEAM_LEVELS, default='U11')
جنگو را از کجا شروع کنیم؟
بهترین توصیه برای آغاز یادگیری زبانهای برنامه نویسی، این است که یک برنامه بنویسید. در واقع تا زمانی که با یک برنامه کار نکنید و چند کد (هر چند ساده) ننویسید، هرگز چیزی یاد نخواهید گرفت. از آنجایی که جنگو فریم ورکی است که از پایتون بهره میگیرد، ابتدا باید نرم افزار پایتون را روی سیستم خود نصب کنید.
در صورتی که قصد دارید برنامه تحت وب پیچیدهای طراحی کنید بهتر است یک پایگاه داده نیز نصب کنید. برای این کار میتوانید از برنامههایی همچون PostgreSQL و MariaDB و MySQL یا Oracle استفاده کنید. در مرحله آخر خود برنامه جنگو را باید نصب کنید.