آموزش جنگو (Django)

دسته بندی: آموزش پایتون (Python)

آموزش جنگو

آنچه در این صفحه می خوانید:

معرفی جنگو (Django)

Django فریمورک وب رایگان و اوپن سورس مبتنی بر پایتون است، که از الگوی معماری model-template-view یا به اختصار MTV استفاده می کند. Django توسط مؤسسه توسط بنیاد نرم افزار (DSF) نگهداری می شود. هدف اصلی جنگو، سهولت در ایجاد وب سایت های پیچیده و پایگاه داده محور است. این فریمورک بر قابلیت استفاده مجدد و قابلیت اتصال به قطعات، کد کم، اتصال کم، توسعه سریع و اصل خودت را تکرار نکن (DRY) تأکید دارد. جنگو به طور کلی از پایتون در سراسر فریمروک، حتی برای فایل های تنظیمات و مدل های داده استفاده می کند. Django همچنین رابط اجرایی ایجاد، خواندن، به روزرسانی و حذف را ایجاد می کند که به صورت پویا از طریق درون نگاری ایجاد می شود و از طریق مدل های ادمین پیکربندی می شود. با Django، می توانید برنامه های وب را از مفهوم برای راه اندازی در عرض چند ساعت در نظر بگیرید. جنگو بیشتر از دردسرهای توسعه وب مراقبت می کند، بنابراین می توانید بدون نیاز به اختراع مجدد چرخ، روی نوشتن برنامه خود تمرکز کنید.

جنگو فریمورک توسعه وب است که در ایجاد و حفظ برنامه های کاربردی وب با کیفیت کمک می کند. جنگو وظایف تکراری را حذف می کند تا فرآیند توسعه را آسان و در مصرف زمان صرفه جویی کند. Django فریمورک وب سطح بالا در پایتون است که باعث طراحی وب تمیز، سریع و کارآمد می شود. با جنگو می توان به سرعت و به سهولت و با کدنویسی کمتر برنامه نویسی کرد. چرا که در آن کد های مربوط به model و controller یا bussiness logic و view از هم جدا می باشند. از آنجایی که این فریمورک توسط زبان پاتون نوشته شده است پس دارای ویژگی های این زبان نیز می باشد. جنگو سهولت در تعریف متغیر ها، meta-programming و امنیت بالایی را فراهم می سازد. جنگو تحت مجوز BSD است.

تاریخچه جنگو (Django)

جنگو در پاییز سال 2003 ایجاد شد، هنگامی که برنامه نویسان وب در روزنامه لارنس ژورنال، آدریان هولوواتی و سیمون ویلیسون، استفاده از پایتون را برای ساختن برنامه های کاربردی شروع کردند. کمی قبل از پایان دوره کارآموزی سیمون ویلیسون، جاکوب کاپلان - ماس در مراحل اولیه توسعه جنگو بود. این ژوئیه در ژوئیه 2005 تحت مجوز BSD منتشر شد. این فریمروک به نام گیتاریست Django Reinhardt نامگذاری شد.

در ژوئن سال 2008 اعلام شد که بنیاد تازه تاسیس نرم افزار جنگو (DSF) در آینده جنگو را حفظ می کند. در ژوئیه سال 2015، Revolution Systems، شرکت مشاوره نرم افزاری متصل به برخی از بنیانگذاران و توسعه دهندگان Django، میزبان رویدادهای 10 ساله در لارنس بود.

ویژگی های جنگو (Django)

کامپوننت ها

علیرغم نامگذاری خاص خود، مانند نامگذاری اشیاء قابل تماس برای تولید "نمایش" پاسخ های HTTP، فریمورک اصلی جنگو را می توان به عنوان معماری MVC مشاهده کرد که شامل نقشه بردار رابطه ای شیء (ORM) است، که واسطه ای بین مدل های داده (تعریف شده به عنوان کلاس های پایتون) و بانک اطلاعاتی رابطه ای ("Model")، سیستمی برای پردازش درخواست های HTTP با سیستم قالب وب ("مشاهده")، و توزیع کننده URL مبتنی بر بیان به طور منظم ("کنترل").

همچنین ویژگی ها در فریمروک اصلی شامل موارد زیر است:

  • وب سرور سبک و مستقل برای توسعه و آزمایش
  • سیستم سریال سازی و اعتبار سنجی فرم که می تواند بین فرم های HTML و مقادیر مناسب برای ذخیره سازی در دیتابیس را ترجمه کند.
  • سیستم قالب که از مفهوم وراثت وام گرفته و از برنامه نویسی شی گرا استفاده می کند.
  • فریمورک ذخیره سازی که می تواند از هر یک از چندین روش حافظه پنهان استفاده کند.
  • پشتیبانی از کلاس های میان افزار که می توانند در مراحل مختلف پردازش درخواست مداخله کنند و عملکردهای سفارشی را انجام دهند.
  • سیستم توزیع کننده داخلی که به اجزای برنامه اجازه می دهد تا از طریق سیگنال های از پیش تعریف شده، رویدادها را به یکدیگر ارتباط دهند.
  • سیستم بین المللی سازی، از جمله ترجمه مؤلفه های خود Django به زبان های مختلف
  • سیستم سریال سازی که می تواند نمایش های XML و یا JSON نمونه های مدل جنگو را تولید و مطالعه کند.
  • سیستمی برای گسترش قابلیت های موتور قالب
  • رابط کاربری فریمورک تست واحد داخلی پایتون
  • فریمورک Django REST ابزاری قدرتمند و انعطاف پذیر برای ساختن API های وب است.

برنامه های بسته بندی شده

توزیع اصلی جنگو تعدادی برنامه را شامل می شود، از جمله:

  • سیستم تأیید گسترده
  • رابط مدیریتی پویا
  • ابزاری برای تولید فیدهای RSS و Atom
  • "Sites" که به Django اجازه می دهد چندین وب سایت را اجرا کند، هرکدام محتوای و برنامه های خاص خود را دارند.
  • ابزاری برای تولید نقشه های Google
  • built-in mitigation برای درخواست های جعلی Cross-platform، تزریق کد SQL و password cracking و سایر حملات وب معمولی، که اکثر آن ها بصورت پیش فرض روشن شده اند.
  • فریمورکی برای ایجاد برنامه های GIS

قابلیت توسعه

سیستم پیکربندی Django اجازه می دهد تا کد شخص ثالث به پروژه عادی وصل شود، مشروط بر اینکه پیرو قراردادهای برنامه قابل استفاده مجدد باشد. بیش از 2500 بسته در دسترس است تا رفتار اصلی این فریمورک را ارائه دهد و راه حل هایی را برای نسخه اصلی ارائه می دهد: ثبت نام، جستجو، تهیه و استفاده API ،CMS و غیره.

در این صورت، وابستگی اجزای داخلی کاهش می یابد. در حالی که فلسفه Django به معنای جفت شدن بدون قاعده است، فیلترها و برچسب های قالب جرای موتور را انجام می دهند و هر دو برنامه های auth و bundled admin به استفاده از ORM داخلی نیاز دارند. هیچکدام از این فیلترها یا برنامه های bundled برای اجرای پروژه Django الزامی نیستند، اما برنامه های قابل استفاده مجدد به آنها بستگی دارند و توسعه دهندگان را ترغیب می کنند با استفاده از پشته رسمی، به منظور بهره مندی کامل از اکوسیستم برنامه ها ادامه دهند.

تنظیم سرور

Django را می توان با همراهی Apache ،Nginx با استفاده از WSGI ،Gunicorn یا Cherokee با استفاده از flup (ماژول پایتون) اجرا کرد. Django همچنین شامل قابلیت راه اندازی سرور FastCGI، امکان استفاده در پشت سرور وب که از FastCGI پشتیبانی می کند، مانند Lighttpd یا Hiawatha است. همچنین می توان از سایر سرورهای وب سازگار با WSGI استفاده کرد. Django رسما از چهار پایگاه داده باسابقه پشتیبانی می کند: PostgreSQL ،MySQL ،SQLite و Oracle. سرور مایکروسافت SQL را می توان با سیستم عامل Django-MySQL در سیستم عامل های مایکروسافت استفاده کرد، در حالی که به طور مشابه پشتوانه های خارجی نیز برای IBM Db2 ،SQL Anywhere و Firebird وجود دارد. انشعابی به نام django-nonrel وجود دارد که از پایگاه داده های NoSQL مانند MongoDB و Datastore Google App Engine پشتیبانی می کند.

Django همچنین ممکن است در رابطه با Jython در هر سرور برنامه Java EE مانند GlassFish یا JBoss اجرا شود. در این حالت، django-jython باید به منظور فراهم آوردن درایورهای JDBC برای اتصال بانک اطلاعاتی نصب شود، همچنین می تواند عملکرد لازم برای کامپایل کردن جنگو را در جنگ داخلی مناسب برای استقرار فراهم کند. Google App Engine شامل پشتیبانی از Django نسخه 1.x.x به عنوان یکی از فریمورک های بسته بندی شده است.

پشتیبانی از ORM

جنگو پل بین مدل داده و موتور پایگاه داده را فراهم می کند و از مجموعه بزرگ از سیستم های پایگاه داده شامل MySQL، اوراکل، PostgreSQL و غیره پشتیبانی می کند. همچنین از پایگاه داده NoSQL از طریق چنگال Django-nonrel پشتیبانی می کند. در حال حاضر، تنها پایگاه داده های NoSQL که پشتیبانی می شوند MongoDB و google app engine است.

چند زبانه

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

پشتیبانی از فریمورک

جنگو از Ajax،RSS ،Caching و سایر فریمورک های دیگر پشتیبانی می کند.

GUI مدیریت

جنگو رابط کاربری مناسب برای فعالیت های مدیریتی فراهم می کند.

محیط توسعه

جنگو وب سرور سبک وزن برای تسهیل تست و توسعه اپلیکیشن های end-to-end ارائه می دهد.

پشتیبانی از سرور

جنگو از سرورهای Apache با استفاده از ماژول mod_python، تمامی سرورهای حمایت کننده از WSGI ،SQLite ،PostgreSQL ،Oracle و MySQL را پشتیبانی می کند.

کاربرد جنگو (Django)

واقعیت جالب اینجاست Django که نخستین بار برای تأمین برنامه وب برای ناشر روزنامه، لورنس ژورنال-جهانی ایجاد شده است. شما می توانید انتظار داشته باشید که در اجرای پروژه هایی با حجم مطالب متنی، پرونده های رسانه ای و ترافیک سنگین، یا هر چیز دیگری که مانند مجله اینترنتی مبتنی بر وب باشد، شگفت انگیز است. اما صنعت نشر تنها محدوده کاربرد فریمروک Django نیست، همچنین برای ساخت وب سایت های تجارت الکترونیک و برنامه های مراقبت های بهداشتی و مالی برای حمل و نقل و رزرو، سایت های رسانه های اجتماعی و موارد دیگر استفاده می شود.

در اینجا چندین نوع پروژه که می توانید با استفاده از فریمورک توسعه دهید، آورده شده است:

  • سیستم عامل های مالی با ویژگی هایی برای تجزیه و تحلیل و محاسبه نتایج تقریبی بر اساس داده های شخصی، تحمل ریسک، احتمال دستیابی به اهداف.
  • ساخته شده در سیستم های CRM سفارشی برای داده های داخلی.
  • سیستم های B2B CRM برای ارتباط بین مشاغل؛
  • پلتفرم هایی که ارتباط بین دو طرف مانند کسب و کار و مصرف کننده را تسهیل می کنند.
  • موتورهای رزرو بالا یا سیستم عامل های خرید با بار بالا؛
  • برنامه های تلفن همراه Android و iOS که از برنامه های وب پشتیبانی می کنند.
  • سیستم های ارزیابی املاک و مستغلات؛
  • سیستم های مدیریت اسناد؛
  • بسترهای لازم برای رسیدگی به موضوعات حقوقی مانند تأیید شرایط وام یا وضعیت اجاره نامه.

برخی از شرکت ها تصمیم می گیرند پروژه های خود را در بیش از فریمورک پایه گذاری کنند. از جنگو همچنین می توانید برای ایجاد ویژگی های جداگانه استفاده کنید، مانند:

  • سیستم ارسال نامه الکترونیکی برای ارسال اعلان ها به کاربران
  • سیستم فیلتر با منطق پیشرفته و قوانین پویا در حال تغییر
  • ژنراتورهای مبتنی بر الگوریتم
  • ابزارهای تحلیل داده
  • رابط هایی برای مدیریت صندوق های سرمایه گذاری
  • داشبورد مدیر
  • سیستم های تأیید مبتنی بر عکس؛
  • و سایر ویژگی هایی که توسعه سیستم عامل های CRM و B2B، بازارهای آنلاین، سیستم های رزرو و سایر موارد را تسهیل می کند.

چرا باید از جنگو (Django) استفاده کنیم؟

به دلایل مختلف، فریمورک برنامه نویسی جنگو را برای ساختن برنامه های کاربردی وب و تلفن همراه انتخاب می کنیم. علاوه بر مزیت های گفته شده در بخش پیشین، جنگو به دلیل سهولت استفاده و طراحی عملی خود به سرعت محبوبیت روز افزون خود را در برنامه نویسی پایتون به دست آورد و تبدیل به یکی از مهم ترین و محبوب ترین فریمورک های زبان Python شد. در حالی که PHP پیروان زیادی دارد، اما انجمن و جامعه انجمن جنگو بسیار مفیدتر از PHP است. جنگو فریمورک اپلیکیشن وب اساسا مجموعه ابزاری است که همه برنامه های کاربردی وب به آن نیاز دارند. نکته دیگری که جنگو را قدرتمند ساخته این است که با پلاگین های ‘app’ می تواند گسترش یابد. پایتون بر روی هر پلتفرمی، از جمله Mac ،PC ،Linux ،heck اجرا می شود، شما حتی می توانید آن را بر روی toaster (تقریبا) اجرا کنید و Django می تواند هر کجا که پایتون کار می کند اجرا شود. در نتیجه، تمام محیط های توسعه و تولید را می تواند پشتیبانی کند. جنگو توسط عملیات خبری آنلاین با هدف ایجاد سریع برنامه های وب قابل اعتماد با استفاده از زبان برنامه نویسی پایتون ایجاد شده است. این فریمورک دارای قالب، کتابخانه و API طراحی شده برای همکاری برای رشد طبیعی و اتصال است. در عمل این بدان معنی است که برنامه های ساخته شده در جنگو ممکن است هزینه های آپدیت، تغییرات و افزودنی ها را کاهش دهد. به طور کلی، جنگو کارهای زیادی را آسان می کند. جنگو برای پروژه هایی از اندازه کوچک تا بزرگترین آنها مناسب است. با توجه به مقیاس پذیری آن، مناسب برای راه اندازی استارت آپ است.

مثال های کاربردی جنگو (Django)

  • اینستاگرام: یکی از شبکه های اجتماعی پرطرفدار است که به تعداد زیادی از داده های رسانه ای و تعامل کاربران می پردازد. Django امکاناتی را فراهم می کند که باعث می شود برنامه وب یکپارچه کار کند، ویژگی های جدیدی اضافه کرده و مسائل را در هر زمان برطرف نمی کند.
  • Spotify: کتابخانه بزرگ رسانه ای با حجم عظیمی از اطلاعات که به کاربران امکان می دهد موسیقی را رایگان و یا بر اساس اشتراک آگهی رایگان گوش دهند. از نظر فنی موارد، Spotify از یادگیری ماشین نیز استفاده می کند، جایی که پایتون یکی از بهترین انتخاب ها است. سازندگان تصمیم گرفتند تا آن را با فریمورک Django ترکیب کنند.
  • واشنگتن پست: جای تعجب نیست که واشنگتن پست از Django برای مدیریت ترافیک سنگین خود استفاده کند زیرا این فریمورک برای ایجاد روزنامه آنلاین ایجاد شده است. چندین مجله اینترنتی دیگر نیز از جنگو استفاده می کنند.
  • Dropbox: فناوری ابری برای ذخیره سازی فایل ها نیاز به عملکرد بالا دارد. Django ابزارهای مورد نیاز خود را برای تهیه اشتراک و همگام سازی و همچنین مقیاس پذیری در Dropbox به شما ارائه می دهد.
  • موزیلا: یکی از پرطرفدارترین مرورگرهای وب، و برنامه دیگر وب که از PHP به پایتون و از این رو به Django تغییر یافته است. در حال حاضر، بهتر می توان ترافیک عظیم و بازدیدهای API را کنترل کرد.
  • ناسا: آنها برای برخی از عناصر کاربردی که به بیشترین قابلیت اطمینان نیاز دارند از جنگو استفاده می کنند. به عنوان مثال وب سایت آنها به اندازه اینستاگرام محبوب نیست، با این وجود از تصاویر با وضوح بالا و به طور متوسط 2 میلیون بازدید در هر ماه بهره می برد.
  • Pinterest: این پلتفرم دارای بیش از 250 میلیون کاربر فعال در هر ماه، حجم عظیمی از داده های رسانه ای را کنترل می کند و هنوز هم می تواند رابط کاربر پسند خود را حفظ کند. به لطف فریمورک اوپن سورس آن، سازندگان توانستند آن را متناسب با نیاز خود تغییر دهند.
  • Reddit: نخستین سایتی که برای اخبار و بحث های اجتماعی به آن مراجعه می کنید چیست؟ برای بسیاری از افراد، Reddit است. بستر محتوای وب که در آن افراد سؤال می کنند، نظرات را به اشتراک می گذارند و اینکه پست ها بر اساس سیستم رتبه بندی تبلیغ می شوند. Reddit برای بسیاری از قابلیت های عملکردی خود مانند سرویس دادن به ترافیک کاربر سنگین، به Django متکی است.
آیا این نوشته را دوست داشتید؟
linkedin-building-react-and-django-apps

ساخت اپلیکیشن های React و Django


کشف کنید که چگونه می توان قدرت عملکرد فرانت اند فریمورک React را با بهترین بک اند های Django برای ساخت اپلیکیشن های فول استک ترکیب کرد. در این دوره، ب...

1398/12/14 3592 بازدید زیرنویس دارد
skillshare-build-a-data-driven-website-with-django

آموزش ساخت وب سایت داده محور با جنگو


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

1398/12/02 5546 بازدید
codewithmosh-the-complete-python-programming-course

دوره کامل برنامه نویسی پایتون - Codewithmosh The Complete Python


دوره کامل پایتون - پایتون را برای هوش مصنوعی، یادگیری ماشینی، علم داده و توسعه اپلیکیشن یاد بگیرید. این دوره بر این فرض است که شما هیچ چیز در مورد پای...

1398/11/30 5455 بازدید
teamtreehouse-django-rest-framework

آموزش Django Rest Framework


Django Rest Framework به اختصار DRF، یک فریمورک قدرتمند و قابل انعطاف در بالای یک فریمورک (Django)، برای ساختن API های RESTful وب است. ویژگی های داخلی...

1398/10/29 2871 بازدید
teamtreehouse-django-class-based-views

آموزش ویوهای مبتنی بر کلاس در جنگو


خوشبختانه، Django همچنین راهی برای ایجاد ویووها به عنوان کلاس هایی است که می توانند به کد تمیزتر و قابل استفاده مجدد بیشتری منجر شوند. view های مبتنی ...

1398/10/03 1412 بازدید
linkedin-test-driven-development-in-django

توسعه تست محور در جنگو (Django)


در این دوره به بررسی اختلافات تست‌های عملکردی و تست‌های واحد در جنگو (Django) و همچنین روش‌های پیشرفته آزمایش، چارچوب تست Django، تست هش، درخواست‌های ...

1398/09/25 1613 بازدید زیرنویس دارد
linkedin-building-a-paid-membership-site-with-django

آموزش ساخت وب سایت عضویتی پولی با Django


با این دوره مهارت های Django خود را با ساختن یک سایت عضویتی که بتواند محتوا را با کاربران به اشتراک بگذارد و پرداخت ها را جمع آوری کند، بهبود می بخشید...

1398/09/03 4258 بازدید زیرنویس دارد
packtpub-consuming-python-apis-with-react-video

بکار بردن API‌های پایتون با React [ویدئویی]


در این دوره شما با راه اندازی سریع ابزارهای جاوا اسکریپت، Node.js و React.js برای ساخت یک پروژه کامل شروع خواهید کرد. سپس، نحوه تعامل کد فرانت اند با ...

1398/08/12 1894 بازدید
linkedin-django-forms

آموزش جنگو - فرم ها


اکثر وب سایت ها برای دریافت داده ها از کاربران نیاز به استفاده از فرم ها دارند ، بنابراین شناختن نحوه جمع آوری و اداره کردن ایمن داده ها ضمن حفظ تجربه...

1398/07/02 3302 بازدید زیرنویس دارد
packtpub-learning-angular-for-django-developers

آموزش انگولار برای توسعه دهندگان جنگو


آیا می خواهید با پایتون اپلیکیشن های حیرت آور بسازید؟ این دوره مهارت های شما در استفاده از انگولار برای ساخت فرانت اند و جنگو برای ساخت بک اند یک پروژ...

1398/03/17 3876 بازدید
packtpub-python-django-dev-to-deployment

آموزش پایتون و جنگو از توسعه تا استقرار


در این آموزش تصویری با برنامه نویسی پایتون و ساخت اپلیکیشن های تحت وب با جنگو (Django) و بوت استرپ 4 به صورت کاملا عملی آشنا می شوید. این دوره هر آنچ...

1398/02/01 39117 بازدید
teamtreehouse-customizing-the-django-admin-course

آموزش سفارش سازی پنل ادمین جنگو (Django Admin)


Django Admin یک ابزار قدرتمند و رایگان است که جنگو به شما ارائه می کند تا محتوای سایت خود را مدیریت کنید. سفارش سازی ادمین کار را برای شما آسان می ساز...

1397/07/27 6259 بازدید
packtpub-creating-smart-web-apps-with-django-video

آموزش ایجاد اپلیکیشن های وب هوشمند با Django 


جنگو قدرت پایتون را به ارمغان می آورد تا به شما کمک کند به سرعت اپلیکیشن های وب را توسعه دهید. در این دوره با Django، ادغام اپلیکیشن با سایر تکنولوژی ...

1397/07/02 5329 بازدید
lynda-django-4-building-an-elearning-platform

آموزش جنگو: قسمت 4: ساخت پلتفرم یادگیری الکترونیکی


در اینجا استفاده از جنگو- چارچوب وب پایتون- را فرا خواهید گرفت تا پلتفرم یادگیری الکترونیکی ایجاد کنید. در این آموزش، نویسنده این دوره،  Antonio Mele ...

1397/05/27 4397 بازدید
teamtreehouse-django-social-authentication

آموزش احراز هویت کاربر در اپلیکیشن جنگو


در این کارگاه، شما یاد خواهید گرفت که چگونه احراز هویت مبتنی بر OAuth را به اپلیکیشن های Django خود اضافه کنید.  ما از GitHub برای ارائه یک راه سریع و...

1397/05/16 2998 بازدید
teamtreehouse-django-basics-course

آموزش اصول اولیه فریمورک جنگو


در این دوره با بررسی فریمورک جنگو، ایجاد نمونه اولیه ی یک سایت یادگیری الکترونیکی، مهاجرت، ORM، ادمین  و سیستم قالب جنگو و غیره آشنا می شوید. سرفصل: ...

1397/05/07 4194 بازدید
teamtreehouse-django-orm-course

آموزش Django ORM


جنگو دارای یک ORM بسیار قدرتمند است که در هنگام ساخت اپلیکیشن ها راحتی را فراهم می کند. در این دوره، ما در مورد استفاده از بسیاری از متدها و ابزارهایی...

1397/05/07 2751 بازدید
teamtreehouse-django-class-based-views-course

آموزش View کلاس محور در جنگو


توابع Django view ساده و آسان برای استفاده هستند، اما گاهی اوقات کارهای تکراری زیادی را مجددا تکرار می کنید. خوشبختانه، جنگو یک راه برای ایجاد View به...

1397/05/02 2141 بازدید
teamtreehouse-customizing-django-templates-course

آموزش سفارش سازی قالب های Django 


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

1397/05/02 2189 بازدید