شما می توانید با عضویت در انجمن پرسش و پاسخ درسمن هرگونه سوالی دارید را مطرح کنید

جنگو در پایتون

تاریخ بروزرسانی : دوشنبه 31 تیر 1398

تعداد بازدید : 132

گروه دوره : برنامه نویسی وب

زمان خواندن مقاله : 15دقیقه

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

جنگو در پایتون

جنگو فریم ورکی برای وب

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

نام این فریم ورک چیست؟

نام این فریم ورک جنگو است.
آیا میدانید جنگو پایتون چیست؟
چرا طرفداران زیادی پیدا کرده است؟
چرا مرکز علمی فوق العاده ای مثل ناسا یا یکی از بهترین شبکه های اجتماعی دنیا مانند Instagram از جنگو استفاده میکنند؟
اگربخواهم تعریف کلی و اجمالی ازاین ابزار برایتان مطرح کنم باید بگویم:
جنگو، یک کتابخانه سطح بالا وجعبه ابزاری از کامپوننت هاست.
این فریم ورک برای وب است که امکان طراحی و ایجاد بسیار سریع وآسان برنامه های تحت وب رافراهم میکند.
نکته بسیار جالبی که برای جنگو وجود دارد این است که این کتابخانه ازخود زبان پایتون پیاده سازی شده است پس بسیاری از ویژگی های خود را ازپایتون به ارث برده است و هدفش، راحت کردن کار برنامه نویسان است یعنی به جای نوشتن کدهای تکراری برای کارهای تکراری، می توانند روی قسمت هایی از پروژه که مخصوص همان پروژه است کارکنند.

تاریخچه جنگو پایتون چیست؟

در سال 2003 Adrian Holovaty و  Simon Willison به عنوان یک پروژه داخلی در روزنامه معتبر Lawrence آن را کلید زدند که در جولای سال 2005 میلادی به نام جنگو (django) عرضه شد. رشد و استقبال از آن در همان سال آنقدر مثبت بود که چندین سایت بزرگ پرترافیک به آن روی آوردند. هم اکنون جنگو یک پروژه اوپن سورس یا متن باز با کاربرانی گسترده از تمام جهان است.

جنگو،جعبه ابزاری از کامپوننت ها است یعنی چه؟

جنگو نیز مانند همه فریمورک ها ازمعماری MVC پشتبانی میکند هرچند که نام این معماری در جنگو MVT نام دارد.
در معماری MVC، اولین واژه نشانگر کامپوننت MODEL است که مربوط به قسمت اطلاعات و داده ها یا همان پایگاه داده ها میباشد.
V نمایانگر کامپوننت VEIW است که در واقع وظیفه نمایش به کاربر را انجام می دهد.
C نشانگر کامپوننت CONTROLLER است، قسمتی که درخواست ها را از کاربر دریافت میکند و با تعامل بین دو بخش دیگر مدل و ویو، پاسخ مناسب به درخواست را ارسال میکند.
در جنگو هم الگو معماری MVT  از لحاظ مفهومی دقیقا همان MVC است با این تفاوت که TEMPLATE همان عملکرد VEIW در MVC  و VEIW در معماری MVT همان نقش CONTROLLER در معماری MVC را ایفا میکند. در تصویر زیر شمای کلی نحوه عملکرد معماری MVT در جنگو را مشاهده میکنید.
MVT PYTON-جنگو پایتون چیست؟

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

 Django  با استفاده از ماژول mod_python بخوبی بر روی وب سرور آپاچی (apache) اجرا می گردد . همچنین بر روی تمامی سروی هایی که از WSGI حمایت کنند قابل اجرا می باشد .
تعریفWSGI:  یک سرور ،  یک ماژول  Python،یک Framwork یا API یا هر نرم افزار دیگری نیست.
 Web Server Gateway Interface  یا به اختصار WSGI جزئیاتی است که چگونگی ارتباط یک وب سرور با یک برنامه تحت وب یا یک Framework نوشته شده به زبان برنامه نویسی Pythonرا شرح می دهد. همچنین مشخص می نماید چگونه برنامه های تحت وب سازگار با  WSGI، با یکدیگر می توانند یک درخواست یا Request را Handle نمایند.
سروری که WSGI روی آن فعال است (در اصطلاح با WSGI سازگار است) تنها Request های ارسال شده از سمت  Client(کاربر) را دریافت نموده و به برنامه مقصد می رساند و سپس پاسخ این Request را از برنامه دریافت نموده و به Client باز می گرداند. لازم به ذکر است WSGI کار دیگری به جز مورد ذکر شده انجام نمی دهد.
 
 همچنین جنگو توانایی راه اندازی سرور  FastCGI  را دارا می باشد که بدین تریتب می توان از جنگو در داخل هر وب سروری که از FastCGI پشتیبانی می کند استفاده کرد.
 
تعریف FastCGI :
اگر بخواهم تعریفی از این سروربرایتان بگویم قبل از آن باید CGI رابشناسید
CGI (واسط دروازه مشترک): یک روش استاندارد برای ایجاد محتوای پویا (داینامیک) دربرنامه های وب استفاده میشود.
زمانی که CGI روی یک وب سرور اجرا میشود یک واسطه میان وب سرور و برنامه هایی که محتوای وب را تولید میکنند ایجاد میکند.
پس  FastCGI (FCGI )  یا واسط دروازه مشترک سریع ، بهبود یافته cgi میباشد.
FCGI واسطی مانند واسط دروازه مشترک (CGI) است با این تفاوت که بر خلاف CGI که در آن برای هر درخواست یک پردازش جداگانه توسط وب سرور آغاز می‌شود، در FCGI یک بازه زمانی  تمام‌مدت آمادهٔ پاسخ‌گویی به درخواست‌ها باقی می‌ماند. درواقع تعدادی process روی سرور ایجاد میکند و هر process  نیز میتواند به چندین درخواست، پاسخ ارسال نمایند.نحوه عملکرد کلی نیز به این شکل میباشد که وب سروردرخواست را برای fcgi ارسال میکند و fcgi نیز آن را برای نرم افزارهای مربوطه مثل database ارسال میکند و سپس جواب را برای وب سرور میفرستد و وب سرور نیز همان جواب را دقیقا برای کاربر ارسال میکند.شاید درانتهای این رد و بدل شدن اطلاعات بین کاربر و سرور کانکشن قطع شود , اما processهای مربوط به وب سرور و fcgi همچنان روی سرور باقی میمانند.
سرورهای دیگری نیزاز جنگو پشتیبانی می کنند که عبارت اند از:
  • PostgreSQL
  • MySQL
  • SQLite
  • Oracle

 

الگوهای طراحی جنگو پایتون چیست؟

Loosely Coupled 
در فریمورک جنگو با پایتون هر عنصر استک مستقل از بقیه عناصر است. یعنی وقتی در یک بخش ، کدی از یک پروژه تغییر می کند بر روی عملکرد بقیه بخش ها تاثیری کمی دارد و باعث اختلال نمی گردد.
Less Coding
همانطور که از اسمش هم پیداست، جنگو به شما کمک میکند تا با نوشتن کدهای کمتری به هدف خود برسید و سرعت طراحی و توسعه پروژه خود را بالا ببرید.
(Don’t Repeat Yourself (DRY
DRY به معنای خودت را تکرار نکن یعنی هر چیزی را به جای اینکه چندین بار طراحی کنید و در دام تکرار بیهوده بیافتید یک بار طراحی کنید و چندین بار از آن استفاده کنید.
Fast Development
همانطور که گفته شد یکی از مهم ترین اهداف جنگو سرعت بخشیدن به انجام پروژه توسط شماست.
Clean Design
جنگو بر واضح و تمیز نوشتن کدها تاکید بسیاری دارد.
چرا آموزش جنگو پایتون بهترین فریم ورک، وب برای پروژه شما است؟
  • به شکل باور نکردنی سریع
جنگو با این تدبیر طراحی شده است تا به برنامه نویس ها کمک کند تا بتوانند از یک مفهوم ساده به پروژه ای پیچیده در کوتاه ترین زمان ممکن برسند. وقتی در مورد سرعت صحبت می شود، همیشه افراد به فکر عملکرد می افتند. این فریم ورک با اشغال حافظه ی کمتر و فراخوان های پایگاه داده ای کمتر توانسته نسبت به سایر فریم ورک ها سرعت بهتری داشته باشد وبه لطف وجود کدهای واضح و ساده‌ای که دارد، فرایند توسعه در جنگو بسیار مؤثر،‌سریع و کاربردی است. بنابراین استفاده از چنین گزینه‌ای برای توسعه‌دهندگانی که از نظر زمان تحویل پروژه تحت فشار هستند بسیار خوب است.
  • انعطاف‌پذیر
از جنگو می‌توان برای ساخت تقریبا هر شکل از وب سایت استفاده کرد. از شبکه‌های اجتماعی گرفته تا وب سایت‌های خبری و سیستم‌های مدیریت محتوا.
  • امنیت بالا 
با کمک جنگو، توسعه‌دهندگان قابلیت این را خواهند داشت که بتوانند بسیاری از مشکلات امنیتی را در یک اپلیکیشن حذف کنند. این فریم ورک به صورتی طراحی شده که بتواند بهترین کارها را برای برقراری امنیت وب سایت انجام دهد. برای مثال: راه امنی را برای پیاده‌سازی مدیریت کاربران با استفاده از نام کاربری و پسورد‌شان پیاده‌سازی کرده است. این متد از اشتباهاتی مانند قرار دادن اطلاعات یک نشست در کوکی‌ها  جلوگیری می‌کند. 
  • کامل بودن
این فریم ورک دارای یک نقشه بردار شیء محور است که در آن می توانید نوع طراحی پروژه ی خود را معین کنید. Syntax  مدل– داده ای این فریم ورک باعث شده تا بتوانید مدل های خود را به روش های بهتری ارائه دهید. دستور Migrate تمامی مدل های موجود را مورد توجه قرار داده و جدول هایی برای داده های شما می سازد. به علاوه، کنترل بیشتری بر روی طراحی پروژه به شما می دهد و کارهایی از قبیل نقشه سایت, مدیریت محتوا, و خیلی دیگر از دستورها را خود انجام می دهد.

 

  • قابلیت نگه‌داری
کدها با استفاده از قواعد و الگو‌های درست طراحی نوشته شده است، بنابراین شما قادر به ایجاد کدهایی با قابلیت نگه‌داری و استفاده‌پذیری دوباره بالا را دارید. یکی از قواعدی که در جنگو پیاده‌سازی شده DRY یا Don't Repeat Yourself نام دارد. با استفاده از این قاعده شما نیازی ندارید  که کارهای تکراری را انجام دهید و این موضوع حجم کدهای ‌تان را بسیار کاهش می‌دهد.
  • قابل حمل 
از آنجایی که جنگو با استفاده از پایتون نوشته شده است، می‌توان آن را در پلتفرم‌های مختلف اجرا کرد. بنابراین شما محدودیت ندارید و می‌توانید برنامه‌ها را در هر سیستم عاملی اعم از ویندوز و خانواده یونیکس اجرا کنید. اکثر سرویس‌دهندگان میزبان نیز امروزه از جنگو پشتیبانی می‌کنند. اغلب آن‌ها زیرساخت‌ها و مستنداتی را برای میزبانی وب سایت‌های ایجاد شده با پایتون را به شما ارائه می‌دهند. 
  • پشتیبانی از (Object-Relational Mapping (ORM
جنگو یک پل ارتباطی بین مدل های داده ایی و پایگاه داده می سازد
  • پشتیبانی از چند زبانی (Multilingual Support)
فریمورک جنگو از سایت هایی با چند زبان مختلف پشتیبانی می کند، پس شما هم میتوانید سایت چند زبانه خود را به راحتی با جنگو توسعه دهید.
  • Framework Support
فریمورک جنگو همچنین از دیگر فریمورک ها مانند Ajax ،RSS ،CASHING و دیگر فریمورک ها پشتیبانی میکند.

 

چه شرکت هایی ازجنگو استفاده میکنند؟
 Instagram.1
جنگو به عنوان BackEnd یا مدیریت سرور برای اینستاگرام و بر روی HIGH-CPU آمازون که ماشین های غول پیکری هستند کار می کند.
  • 2. Mozilla Firefox
موزیلا از جنگو برای کار با مقیاس های بالای داده ای به شکل بکاپ های عظیم استفاده می کند.
  • 3. Pinterest
 Pinterest  نیز مثل اینستاگرام، یکی از شرکت هایی است که از Ruby on Rails به جنگو نقل مکان کرده تا بتواند مقیاس های داده ای بالاتری را پوشش دهد.
  • 4. NASA
سازمان ناسا از فریم فرک جنگو برای ساخت و بروز رسانی مداوم وب سایت خود بهره می برد.
  • 5. Washington Post
این غول خبری میلیون ها بازدید کننده در روز دارد و به جنگو برای سرپا نگه داشتن وب سایت و عملیات آن وابستگی زیادی دارد.
  • 6. EvenBrite
به دلیل این که این سایت قبل از این نیز حجم بالایی از کد های خود را در Pyhton نوشته بود، استفاده از فریم جنگو کار بسیار ساده ای بوده و به عنوان بهترین گزینه در نظر گرفته شده است. آن‌ها از این فریم ورک برای ساخت صفحه Homepage و مدیریت بارهای سنگین ترافیکی استفاده می کنند.

 

 سخن پایانی
با بالا رفتن حجم سایت ها و پروژه های نوشته شده و مورد نیاز برای کاربرد های امروزی، پیدا کردن زبان برنامه نویسی مناسب و فریم ورک هایی که بتوانند تمام ویژگی ها را داشته باشند و با سرعت زیادی بتوانند حجم بالای داده ها را پردازش کنند، به یکی از چالش های بزرگ برای تیم های برنامه نویسی تبدیل شده است. معمولا پروژه های موفق از ترکیبی از زبان ها و فریم ورک ها استفاده می کنند تا بتوانند به نتیجه ی مورد نظر برسند.
ما به این نتیجه رسیدیم که آموزش پایتون با کمک فریم ورک Django که قابلیت پشتیبانی سایت ها و پروژه های پر حجم را دارد بهترین گزینه است. این فریم ورک با استفاده از ویژگی های ذاتی و بسیار، روش هایی جدید و موثر در ایجاد وب سایت را  فراهم نموده است. مهمتر از همه تمامی بخش های این فریم ورک آزاد بوده و بصورت رایگان در دسترس تمامی افراد قرار دارد
نکته دیگری که جنگو را قدرتمند ساخته این است که با پلاگین های ‘app’ می تواند گسترش یابد. پایتون بر روی هر پلتفرمی، از جمله  Mac، PC، Linux، heck اجرا می شود و Django می تواند هر کجا که پایتون کار می کند اجرا شود.
این برنامه با سرعت بالا و داشتن تمامی ویژگی ها درون خود می تواند بهترین گزینه برای تیم های برنامه نویسی با حجم کاری بالا باشد.


اشتراک گذاری


توضیحاتی در مورد نویسنده این مقاله :
مرضیه فتاحی مرضیه فتاحی

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


نظر بدهید

نشانی ایمیل شما منتشر نخواهد شد .
برای ارسال نظر نیاز است وارد سایت شوید. در صورت نداشتن حساب کاربری عضو شوید.

گروه مقالات


آموزشی
27
علمی
18
تحقیقاتی
20


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