WSGI را بیاموزید ، و بگذارید Python چیزهای کوچک را عرق کند

افشای: پشتیبانی شما به حفظ سایت کمک می کند! ما برای برخی از خدماتی که در این صفحه توصیه می کنیم هزینه ارجاع دریافت می کنیم.


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

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

البته پایتون تنها زبان برنامه نویسی با مشخصات استاندارد رابط نیست. بسیاری از زبانهای برنامه نویسی مدرن از همین رویکرد استفاده می کنند ، به عنوان مثال ، Ruby از رابط سرور Rack خود استفاده می کند ، JavaScript به رابط دروازه JSGI خود متکی است ، در حالی که Perl از PSGI استفاده می کند..

تاریخچه مختصر

مشخصات WSGI در اصل در پیشنهاد پایتون تقویت 333 (PEP 333) ، نوشته شده توسط فیلیپ ج ایبی و در دسامبر 2003 منتشر شد. این پیش نویس اولیه WSGI اصول و اهداف اساسی را برای WSGI ارائه می داد – اجرای آن آسان بود. ، ساده و جهانی ، و مجبور به اتصال آسان سرورها و چارچوب های موجود است.

WSGI به سرعت توسط سرور پایتون و نویسندگان چارچوب و توسعه دهندگان به تصویب رسید ، و به عنوان استانداردی برای توسعه برنامه های وب پایتون تبدیل شد. آخرین نسخه مشخصات WSGI V1.0.1 است که در PEP 3333 در تاریخ 26 سپتامبر 2010 منتشر شده است.

بررسی اجمالی مشخصات WSGI

مشخصات WSGI سه نقش خاص را اعلام می کند: سمت سرور ، سمت برنامه و مؤلفه میان افزار ، که هم سرور و هم برنامه های رابط را پیاده سازی می کند..

سمت برنامه

سمت برنامه WSGI یک شی ساده است که دو آرگومان را می پذیرد و می توان از کد نام برد. این مثال یک برنامه WSGI ساده را نشان می دهد که “جهان سلام” را به شما باز می گرداند. صفحه:

Def Simple_app (محیط ، start_response):
status = ‘200 خوب’
answer_headers = [(‘نوع محتوا’ ، ‘متن / ساده’)]
start_response (وضعیت ، پاسخ_ هدایت)
بازگشت [‘سلام جهان! n’]

اشیاء جانبی برنامه می توانند چندین بار فراخوانی شوند ، زیرا همه سرورها چنین درخواست های مکرر را انجام می دهند.

سمت سرور

سمت سرور WSGI به سادگی درخواست هایی را از سرویس گیرنده HTTP دریافت می کند ، برای هر درخواست یک بار برنامه را فراخوانی می کند و پاسخی را که توسط برنامه ارسال شده به مشتری ارسال می شود..

مؤلفه Middleware

اجزای Middleware تعریف شده در مشخصات WSGI از دو طرف رابط استفاده می کنند – سمت برنامه ، و همچنین سمت سرور. عملکردهای Middleware برای طرف سرور و طرف برنامه شفاف هستند.

اجزای Middleware معمولاً توابع مانند مسیریابی درخواست ها به اشیاء مختلف برنامه را بر اساس URL هدف تنظیم می کنند و به چندین برنامه اجازه می دهند تا در یک فرآیند مشابه در کنار یکدیگر اجرا شوند. آنها تعادل بار ، پردازش از راه دور یا پردازش محتوا را فعال می کنند.

این مثال یک مؤلفه واسطه ساده را نشان می دهد که از همه چیز دریافت می کند:

کلاس بالا افزار:
Def __init __ (خود ، برنامه):
self.wrapped_app = برنامه

دف __ کل __ (خود ، محیط ، شروع_پاسخ):
برای داده ها در self.wrapped_app (محیط ، start_response):
Return data.upper ()

با استفاده از WSGI

WSGI اکنون به عنوان استانداردی برای توسعه برنامه های وب پایتون پذیرفته شده است. نسخه پایتون 2.5 و نسخه های بعدی از پشتیبانی WSGI تعبیه شده برخوردار هستند. در نسخه های پایتون 2.4 و قبل از آن ، پشتیبانی WSGI را می توان جداگانه نصب کرد. نسخه به روز شده مشخصات WSGI اعلام شده در PEP 3333 برای پایتون 3 در دسترس است.

اگر برنامه های وب را در پایتون ایجاد می کنید ، به سادگی از یک استاندارد ثابت شده در صنعت ، مانند چارچوبهای وب Django ، Flask یا Bottle Python یا هر چارچوب فعلی پایتون استفاده کنید. برای ساختن برنامه های کاربردی نیازی نیست که در مورد مشخصات WSGI چیزهای زیادی بیاموزید. فقط از هر چارچوب برنامه وب نسل فعلی استفاده کنید و باید شفاف باشید ، زیرا همه آنها از WSGI پشتیبانی می کنند.

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

منابع WSGI

اگر نیاز به کسب اطلاعات بیشتر در مورد WSGI دارید ، پیشنهاد می کنیم به برخی از منابع آنلاین زیر نگاهی بیندازید:

  • سایت انجمن WSGI بدیهی است اولین مکان برای بازدید است. می توانید منابع مفیدی را پیدا کنید ، همچنین یک بخش Learn About WSGI نیز وجود دارد. این سایت همچنین چارچوب ها و سرورهایی را پشتیبانی می کند که از WSGI پشتیبانی می کنند.
  • همچنین می توانید برای اطلاعات بیشتر طرح پیشنهادی کامل پایتون تقویت 333 و پیشنهاد پایتون 3333 را بخوانید.
  • مستندات آنلاین چارچوب توسعه وب Pylons دارای بخش بسیار خوب و مفصلی درباره WSGI است.
  • آموزش WSGI Codepoint مشخصات WSGI را در محل کار با استفاده از چند مثال ساده نشان می دهد.

کتابهای WSGI

کتاب هایی که بطور خاص WSGI را پوشش می دهند ، سخت است ، و معمولاً فصل هایی راجع به WSGI در کتابهای مختلف برنامه نویسی وب پایتون ، مانند این ، پیدا خواهید کرد:

  • مبانی برنامه نویسی شبکه پایتون: راهنمای جامع ساختن برنامه های شبکه با پایتون توسط Goerzen ، Bower و Rhodes: فصل مربوط به برنامه نویسی برنامه وب ، استاندارد WSGI را برای قابلیت همکاری مؤلفه ها و همچنین چارچوب های وب مدرن مانند جنگو شامل می شود..

نتیجه

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

به گفته این ، WSGI هنوز هم مهم است ، اگرچه پیش نیاز برنامه نویسی پایتون نیست. یک استثناء قابل توجه مهندسان نرم افزار است که تصمیم می گیرند به جای برنامه های پایتون روی چهارچوب های پایتون کار کنند. WSGI تا آنجا که به آنها نگران است ، یک ویژگی ضروری است و اگر امیدوارند که این برنامه را در چارچوب خود ادغام کنند ، باید مشکلات و مزایای WSGI را بدانند..

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

مطالعه بیشتر و منابع

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

  • مقدمه ، منابع و سؤالات متداول Python: اگر تازه وارد پایتون شوید ، این معرفی باعث می شود که شما پیش بروید.
  • MPI – مقدمه ، تاریخ و منابع: رابط عبور پیام (MPI) به برنامه ها و سایر سیستم های رایانه ای اجازه می دهد تا پیام های دیگری را به یکدیگر ارسال کنند.
  • مقدمه و منابع برنامه نویسی لینوکس: این شیرجه رفتن عمیق به برنامه نویسی لینوکس تبدیل می شود به هسته که در آن تمام اقدامات است.

چه کدی را باید بیاموزید?

گیج شده در مورد چه زبان برنامه نویسی که باید رمزگذاری کنید؟ اینفوگرافیک ما را ببینید ، چه کدی را باید یاد بگیرید؟ این نه تنها در مورد جنبه های مختلف زبان بحث می کند ، بلکه به سؤالات مهمی از جمله ، “چقدر می توانم برنامه نویسی جاوا را برای امرار معاش بسازم؟”

چه کد باید یاد بگیرید؟
چه کدی را باید بیاموزید?

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me