Django چیست؟

django index
توسط

Django (جنگو) یک فریم ورک وب سطح بالا پایتون است که توسعه سریع وب سایت های امن و قابل نگهداری را امکان پذیر می کند. جنگو رایگان و منبع باز است، دارای یک جامعه پر رونق و فعال، اسناد عالی، و گزینه های زیادی برای پشتیبانی رایگان و پولی است.

جنگو به شما کمک می کند تا نرم افزارهایی بنویسید که عبارتند از:

کامل
جنگو از فلسفه "باتری شامل" پیروی می کند و تقریباً هر کاری را که توسعه دهندگان ممکن است بخواهند "بیرون از جعبه" انجام دهند را ارائه می دهد. از آنجایی که هر چیزی که نیاز دارید بخشی از یک "محصول" است، همه آنها به طور یکپارچه با هم کار می کنند، از اصول طراحی سازگار پیروی می کنند و دارای اسناد گسترده و به روز هستند.

همه کاره
جنگو می‌تواند برای ساختن تقریباً هر نوع وب‌سایتی (از سیستم‌های مدیریت محتوا و ویکی‌ها گرفته تا شبکه‌های اجتماعی و سایت‌های خبری) مورد استفاده قرار گیرد (و شده است). این می تواند با هر چارچوب سمت مشتری کار کند و می تواند محتوا را تقریباً در هر قالبی (از جمله HTML، فیدهای RSS، JSON و XML) ارائه دهد.

در داخل، در حالی که تقریباً برای هر عملکردی که ممکن است بخواهید (به عنوان مثال چندین پایگاه داده محبوب، موتورهای قالب و غیره) گزینه هایی را ارائه می دهد، همچنین می تواند در صورت نیاز برای استفاده از سایر مؤلفه ها گسترش یابد.

django 2

امن است
جنگو به توسعه‌دهندگان کمک می‌کند از بسیاری از اشتباهات امنیتی رایج با ارائه چارچوبی که برای «انجام کارهای درست» برای محافظت خودکار از وب‌سایت مهندسی شده است، اجتناب کنند. به عنوان مثال، جنگو یک راه امن برای مدیریت حساب‌های کاربری و رمزهای عبور ارائه می‌کند، از اشتباهات رایج مانند قرار دادن اطلاعات جلسه در کوکی‌ها در جایی که آسیب‌پذیر است (در عوض کوکی‌ها فقط حاوی یک کلید هستند و داده‌های واقعی در پایگاه داده ذخیره می‌شوند) یا ذخیره مستقیم گذرواژه‌ها اجتناب می‌کند. به جای هش رمز عبور.

هش رمز عبور یک مقدار با طول ثابت است که با ارسال رمز عبور از طریق یک تابع هش رمزنگاری ایجاد می شود. جنگو می‌تواند با اجرای آن از طریق تابع هش و مقایسه خروجی با مقدار هش ذخیره شده، صحت رمز عبور وارد شده را بررسی کند. اما به دلیل ماهیت "یک طرفه" تابع، حتی اگر مقدار هش ذخیره شده به خطر بیفتد، برای مهاجم سخت است که رمز عبور اصلی را پیدا کند.

جنگو به طور پیش‌فرض محافظت در برابر بسیاری از آسیب‌پذیری‌ها را فعال می‌کند، از جمله تزریق SQL، اسکریپت‌نویسی متقابل، جعل درخواست‌های بین سایتی و جعل کلیک (برای جزئیات بیشتر در مورد چنین حملاتی به امنیت وب‌سایت مراجعه کنید).

مقیاس پذیر
جنگو از یک معماری مبتنی بر کامپوننت «اشتراک‌گذاری شده-هیچ چیز» استفاده می‌کند (هر بخش از معماری مستقل از بقیه است و از این رو می‌تواند در صورت نیاز جایگزین یا تغییر شود). داشتن جدایی واضح بین بخش‌های مختلف به این معنی است که می‌تواند با افزودن سخت‌افزار در هر سطحی، برای افزایش ترافیک مقیاس‌بندی شود: سرورهای کش، سرورهای پایگاه داده یا سرورهای برنامه. برخی از شلوغ‌ترین سایت‌ها با موفقیت جنگو را برای برآورده کردن خواسته‌های خود افزایش داده‌اند (مانند اینستاگرام و Disqus، فقط دو مورد را نام ببریم).

قابل نگهداری
کد جنگو با استفاده از اصول و الگوهای طراحی نوشته شده است که ایجاد کدهای قابل نگهداری و قابل استفاده مجدد را تشویق می کند. به طور خاص، از اصل تکرار نکنید (DRY) استفاده می کند، بنابراین هیچ تکراری غیرضروری وجود ندارد و مقدار کد را کاهش می دهد. جنگو همچنین گروه‌بندی عملکردهای مرتبط را به «برنامه‌های کاربردی» قابل استفاده مجدد و در سطح پایین‌تر، گروه‌بندی کدهای مرتبط را در ماژول‌ها (در امتداد خطوط الگوی Model View Controller (MVC)) ترویج می‌کند.

قابل حمل
جنگو به زبان پایتون نوشته شده است که روی پلتفرم های زیادی اجرا می شود. این بدان معناست که شما به هیچ پلتفرم سرور خاصی وابسته نیستید و می‌توانید برنامه‌های خود را روی بسیاری از لینوکس، ویندوز و macOS اجرا کنید. علاوه بر این، جنگو توسط بسیاری از ارائه دهندگان میزبانی وب، که اغلب زیرساخت ها و اسناد خاصی را برای میزبانی سایت های جنگو ارائه می دهند، به خوبی پشتیبانی می شود.

django 1

مزایای Django

از جمله مزایای استفاده از کتابخانه جنگو، می‌توان به موارد زیر اشاره کرد:

پشتیبانی از نگاشت مدل اشیاء به مدل رابطه‌ای:
پلتفرم Django، پلی میان «مدل داده»  و «موتور پایگاه داده» پدید می‌آورد و از مجموعه بزرگی از «سیستم‌های مدیریت پایگاه داده» نظیر MySQL ،Oracle ،Postgres و سایر موارد پشتیبانی می‌کند. همچنین، جنگو از پایگاه‌های داده NoSQL نیز از طریق انشعاب خاصی از این پلتفرم، به نام Django-nonrel پشتیبانی می‌کند. در حال حاضر، تنها پایگاه‌های داده NoSQL که توسط جنگو پشتیبانی می‌شوند، پلتفرم‌های MongoDB و Google App Engine هستند.

پشتیبانی چند زبانه:
پلتفرم جنگو، از طریق سیستم داخلی بین‌الملی‌سازی این پلتفرم، از توسعه وب‌سایت‌های چند زبانه پشتیبانی می‌کند. چنین امکانی به برنامه‌نویس و توسعه‌دهنده اجازه می‌دهد تا وب‌سایت‌هایی را توسعه دهد که به طور ذاتی از چندین زبان دنیا پشتیبانی می‌کنند.

پشتیبانی از پلتفرم‌ها و چارچوب‌های مختلف توسعه وب: پلتفرم Django، پشتیبانی داخلی و تعبیه شده از پلتفرم‌هایی نظیر Ajax ،RSS ،Caching و سایر موارد فراهم می‌آورد.
«واسط کاربری گرافیکی» (Graphical User Interface | GUI) مدیریتی: پلتفرم جنگو، یک واسط کاربری آماده به استفاده (ready-to-use) برای فعالیت‌های مدیریتی وب‌سایت و مؤلفه‌های آن در اختیار برنامه‌نویسان و توسعه‌دهندگان قرار می‌دهد.

محیط توسعه:
کتابخانه Django به همراه یک «وب سرور» (Web Server) سبک عرضه می‌شود که فرایند توسعه و آزمایش برنامه‌های کاربردی «سرتاسری» (End-to-End) را تسهیل می‌کند.


پست های توصیه شده