ALI Hajivand
ALI Hajivand
خواندن ۴ دقیقه·۵ سال پیش

درخواست و پاسخ در جنگو (بخش اول )


سلام در این مقاله میخوام درباره ی چرخه ی Request/Response در django بخونیم

  • دبلیو اس جی ای / WSGI

لایه های برنامه جنگو

  • درخواست Middlewares
  • لایه (URL Router(URL Dispatcher
  • لایه بازدید یا همان Views
  • لایه Context Processors
  • لایه Template Renderers
  • لایه Response Middlewares

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

خب بریم ، هنگام راه‌اندازی یک پروژه جدید جنگو ، یکی از اولین کارهایی که شما انجام خواهید داد این است که URLconfs و Views های خود را تنظیم کنید.

اما واقعاً در اینجا در پشت صحنه چه اتفاقی می افتد. Django چگونه چرخه مسیر دهی Views ها و middlewares چه نقشی در این مسیر دهی و عبور دارد.


دبلیو اس جی ای / WSGI

خب ، Web Server Gateway Interface یا به اختصار WSGI جزئیاتی است که چگونگی ارتباط یک وب سرور با یک برنامه تحت وب یا یک Framework نوشته شده به زبان برنامه نویسی پایتون را شرح می دهد. همچنین مشخص می نماید چگونه برنامه های تحت وب سازگار با WSGI، با یکدیگر می توانند یک درخواست یا Request را Handle نمایند.

دبلیو اس جی ای / WSGI ابزاری است که برای حل یک مشکل اساسی ایجاد شده است. اتصال وب سرور به یک فریم ورک وب . دو طرف WSGI : اولی ' server ' و دومی ' application ' این دو طرف هستند. WSGI برای رسیدگی به پاسخ ، سرور برنامه را اجرا میکند و عملکرد و پاسخ را به کاربر ارسال میکند. برنامه درخواست را پردازش می کند و با استفاده از پاسخ به تماسی ک با سرور دارد پاسخ را به سرور برمیگرداند. و WSGI نقش کنترل کننده بین وب سرور شما مثلا :Apache یا NGINX و پروژه جنگو شما را دارد.

بین وب سرور شما و برنامه شما واسطه های زیادی وجود ، آنها میتوانند دیتا و داده های بین نرم افزار و وب سرور شما را تغییر و کنترل کنند .


روند اطلاعات و داده ها :

وقتی که کاربر درخواستی در برنامه انجام می دهد، WSGI این کارای مهم را انجام میدهد :

  • فایل settings.py و کلاس های جنگو را ایمپورت میکند.
  • تمامی کلاس های middleware را فرا میخواند، MIDDLEWARE_CLASSES یا MIDDLEWARES (بسته به نسخه جنگو) پروژه شما دارد ک در فایل settings.py.
  • ساخت 4 لیست از متد ها که کارشون پردازش از درخواست ها (request), ویو ها (View), پاسخ (response) و یکسری exception یا همون استثنا هایی ک داریم.
  • دستورات از طریق درخواست در حلقه به ترتیب اجرا میشود .
  • تصمیم گیری برای درخواست URL ها
  • حلقه هارا از یکسری متد های ویو پردازش میکند .
  • توابع فراخوانی میشوند.
  • هر روش استثنائی را پردازش می کند.
  • حلقه ها را از طریق هر یک از روش های پاسخ میدهد(از داخل به خارج و برعکس سفارش از middlewares انجام میشود )
  • و سرانجام مقدار برگشتی توابع را فراخوانی و به وب سرور پاس میدهد.


لایه های برنامه جنگو

  • درخواست Middlewares
  • لایه (URL Router(URL Dispatcher
  • لایه بازدید یا همان Views
  • لایه Context Processors
  • لایه Template Renderers
  • لایه Response Middlewares


ادامه مقاله در بخش دوم امید وارم خوشتون اومده باشه
این مقاله حاصل مطالعه و ترجمه از مقاله ها است(((:
pythondjangoserverview
سلام من علی حاجبوند (حاجی ) برنامه نویس وب و طراح UI UX هستم. مقاله هامم همش جنبه علمی و فاز سنگین نداره بخون صفا کن.
شاید از این پست‌ها خوشتان بیاید