021-71053903 [email protected] پشتیبانی از شنبه تا چهارشنبه ساعت 9 الی 16

طراحی وب با Tornado

Tornado یک وب فریمورک و Asynchronous networking library در زبان پایتون است.

با استفاده از non-blocking network I/O ‍‍فریمورک Tornado میتواند ده ها هزار ارتباط را برقرار کند.

خب این تعریف اولیه که گفته شد کمی واژه های نامفهوم دارد بیاید با هم تک تک این موارد را مورد بررسی قرار دهیم

Asynchronous networking : برای انتقال دادن داده ها در یک ارتباط در این نوع از ارتباط ها دیگر نیازی به یک سیگنال کلاک هماهنگ کننده بین end-user ها نیست و همین موضوع باعث این میشود از سمت هر یک از این end-user ها داده ها به صورت متناوب منتشر شود.

پس در این نوع ارتباط ها داده ها در فواصل زمانی مشخصی فرستاده نمی شوند.

Non-block I/O : به این معناست که زمانی که ریکوست هایی زمان انجام دادن ریکوست قبلی ارسال شد این ریکوست میرود و در صفی ذخیره می شود تا وقتی که کار ریکوست قبلی به پایان رسید به این ریکوست هم پاسخ داده شود.

اما بیایم کمی از این تعاریف اولیه گذر کنیم  و به سمت کاربرد های این فریمورک برویم که چه ابزاری را میتواند در اختیار ما بگذارد.

با توجه به این خاصیت هایی که این فریمورک دارد ما میتوانیم از آن در رای گیری های طولانی و webSocket ها استفاده کنیم که هر یک از این کاربرد ها نیازمند یک سرویسی است که بتواند یک ارتباط بلند مدت را برای کاربر فراهم کند.

یک تفاوتی که Tornado با سایر وب فریمورک های پایتون دارد در این است که بر پایه WSGI نیست و در واقع به این صورت اجرا می شود که برای هر فرآیند یک Thread در نظر می گیرد.

اما این که بر پایه WSGI نیست دلیل بر این نیست که این فریمورک آن را پشتیبانی نکند بلکه میتوانیم با استفاده از ماژول tornado.wsgi از این قابلیت استفاده کنیم.

Tornado را می توانیم به چهار مولفه اصلی دسته بندی کنیم.

  1. یک وب فریمورک که زیر شاخه RequestHandler عمل کند برای ساخت وب اپلیکیشن ها و پشتیبانی سایر کلاس ها استفاده شود.
  2. برای پیاده سازی کلاینت – سرور های HTTP
  3. هر Asynchronous networking شامل کلاس های IOLoop , IOStream  که برای ساخت اجزای Http ها به کار میرود و همچنین میتوانیم با استفاده از این قابلیت پروتکل های دیگری را نیز پیاده سازی کنیم.
  4. با استفاده از کتابخانه ی coroutine میتوانیم کد های  Asynchronous ایجاد کنیم که نسبت به chaining callbacks ها سر راست تر هستند.

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

محمدرضا حسنی

224 مطلب منتشر شده

دانش آموخته رشته فناوری اطلاعات / موسس پایتونی ها

درباره این مطلب نظر دهید !

محصولات فروش پایتونی ها

%60
تخفیف

آموزش فیگما (Figma)

30,000 تومان
3
%69
تخفیف

آموزش برنامه نویسی پایتون

35,000 تومان
2