تمام افرادی که در دنیای برنامه نویسی و وب فعالیت میکنند، نام جاوا اسکریپت را شنیدهاند. در واقع از جاوا اسکریپت در کنار HTML و CSS به عنوان هسته وب یاد میشود. اما این تمام کاربرد جاوا اسکریپت نیست و از آن به عنوان زبان سطح بالا و مفسری در ساخت اپلیکیشن، بازی، برنامههای دسکتاپ و … استفاده میشود.
یکی از ویژگیهایی که تمام برنامه نویسان به دنبال آن بودند، اجرای کدهای خود در سمت سرور بود. به این صورت میتوانند ظاهر و منطق سرویس خود را ایجاد کرده و از زبانهای سمت سرور مانند PHP و روبی استفاده نکنند. به این صورت بود که Node.js معرفی شد و از آن برای اجرای کدهای جاوا اسکریپت در سمت سرور استفاده میشود. حال باید ببینیم Node.js دقیقا چیست و چه کاربردی دارد؟
Node.js چیست؟
نود جی اس را به عنوان یک پلتفرم سمت سرور میشناسند که مبتنی بر موتور جاوا اسکریپت گوگل کروم است. این پلتفرم هر آنچه برای اجرای برنامه نوشته شده به زبان جاوا اسکرپیت نیاز دارید، برای شما فراهم میکند. اولین بار در سال 2009 بود که آقای رایان دال Node.js را معرفی کرد. این پلتفرم نشان دهنده قدرت بالای جاوا اسکریپت است و نمیتوان آن را تنها گزینهای برای پویا سازی صفحات وب در بخش فرانت اند به کار برد.
با کمک node.js برنامههای نوشته شده به زبان جاوا اسکریپت به جای مرورگر در محیط سرور اجرا میشوند. این ویژگیها کمک میکنند به راحتی بتوانید برنامههای تحت شبکه بزرگ و مقیاس پذیر بنویسید. پس از معرفی جاوا اسکریپت و علیرغم تلاشهای برنامه نویسان برای استفاده از آن، به مرور زمان به سمت فراموشی میرفت. اما پس از معرفی node.js، جاوا اسکریپت نیز بیشتر مورد استفاده قرار گرفت.
آیا Node.js فریم ورک است؟
در پاسخ به این سوال باید بگوییم، خیر، نود جی اس را نمیتوان به عنوان فریم ورک جاوا اسکریپت معرفی کرد. در واقع فریم ورک به مجموعه کتابخانهها و استانداردهایی گفته میشود که با کمک آنها استفاده از یک زبان برنامه نویسی سادهتر میشود. در واقع با کمک فریم ورک نیازی به انجام کارهای یکنواخت و تکراری وجود ندارد و کار برنامه نویسی سادهتر میشود. در جاوا اسکریپت نیز فریم ورکهای متعددی مانند Angular، React، Meteor.js، Vue.js وجود دارند. با کمک این فریم ورکها میتوانید امنیت و کارایی محصول را افزایش دهید و در مقابل در هزینهها نیز صرفه جویی کنید.
اما درباره نود جی اس میتوان آن را به عنوان محیط اجرایی یا run-time environment در نظر گرفت. میتوان گفت نود از فریم ورکها فراتر رفته و کاربردهای بیشتری نیز نسبت به فریم ورک دارد. همچنین نمیتوان آن را محدود به برنامههای تحت وب دانست و میتوان در ساخت انواع میکورکنترلر، بستههای سیستم عامل، رباتیک و حتی برنامههای ساخت هواپیمای بدون سرنشین نیز از آن استفاده کرد.
نکته دیگر درباره نود جی اس این است که میتوان از آن به عنوان تنها پلتفرم سمت سرور جاوا اسکریپت نام برد. قبل از نود نیز نسخههای دیگری طراحی شدند که به هیچ عنوان قابلیت رقابت با نود جی اس را نداشته و به سرعت شکست خوردند.
نحوه کار Node.js چگونه است؟
با توجه به اهمیتی که درباره نود جی اس و استفاده از ان گفته شد، باید ببینیم نحوه کار این پلتفرم دقیقا چگونه است؟ معماری که در این پلتفرم به منظور مدیریت همزمان استفاده میشود، معماری یک رشته چندین حلقه یا Single Threaded Event Loop است. این معماری به صورتی است که نود روی یک رشته کار کرده که اجازه دارد هزاران حلقه رویداد را به صورت همزمان مدیریت کند. نحوه عملکرد آن به صورت زیر است.
- نود مجموعهای محدود از رشتهها را برای ارائه درخواستها نگهداری میکند.
- اگر درخواست جدیدی وارد شود، نود آن را در صف پردازش قرار میدهد.
- در مرحله بعد حلقه رویداد وجود دارد که به صورت نامحدود در انتظار درخواست میماند.
- زمانی که درخواست جدید وارد میشود، حلقه آن را انتخاب و پردازش میکند. اگر نیاز به عملیات خاصی باشد، ورودی و خروجی را مسدود میکند.
- اگر درخواست نیاز به مسدود سازی داشته باشد، حلقه رشتهای از استخر نخ برمیدارد و آن را به پردازش درخواست اختصاص میدهد.
- در نهایت حلقه رویدادهای مسدود کردن را دنبال کرده و پس از پردازش، آنها را در صف قرار میدهد.
نود جی اس از نخهای کمتری استفاده میکند. همین امر سبب میشود سرعت کار آن بسیار بالا رفته، علاوه بر آن به حافظه و منابع کمتری نیز احتیاج پیدا میکند. نود جی اس برای برنامههای بلادرنگ بهترین انتخاب است.
مزایای استفاده از Node.js کدامند؟
با توجه به تعاریف و توضیحات گفته شده درباره node.js میتوان از مزایای بسیار زیاد آن نام برد. با توجه به این مزایا میتوان از نود در موارد مختلفی استفاده نمود.
بازدهی و انعطاف بسیار بالا
نود از زبان برنامه نویسی C++ در کنار V8 engine استفاده کرده است، به همین دلیل از سرعت بسیار بالایی برخوردار است. V8 نود به صورت مرتب آپدیت میشوند تا با جددیترین ویژگیهای جاوا اسکریپت هماهنگ باشند. به همین دلیل است که دارای بازدهی و امنیت بسیار بالایی هستند. متداولترین قالب انتقال داده در دنیای وب، JSON است و با کمک جاوا اسکریپت سرعت انتقال آن بسیار سریعتر خواهد بود. V8 موتور جاوا اسکریپتی گوگل است و به صورتی طراحی شده تا کدهای جاوا اسکریپت را به سرعت درون خود کامپایل و اجرا کند. دلیل سرعت بالا و استفاده زیاد از node.js را میتوان همین موتور قدرتمند دانست.
کراس پلتفرم بودن Node.js
از آنجایی که با پلتفرمهایی مانند Electron.js یا NW.js در نود جی اس میتوانید برنامه دسکتاپ بسازید، کدهای برنامه تحت وب نیز در محیط لینوکس، ویندوز و مک قابل استفاده هستند. شما میتوانید به راحتی و همزمان با ساخت نسخه وب محصول، بدون نیاز به دانش تخصصی در حوزه برنامههای native، برنامه دسکتاپ نیز ایجاد کنید. محدود نبودن به هیچ مرورگری از بهترین ویژگیها و مزایای استفاده از Node.js است.
معماری تک رشتهای در نود جی اس
همانطور که گفته شد این پلتفرم از معماری تک رشتهای استفاده میکند. این موضوع باعث افزایش مقیاس پذیری نود جی اس میشود. در نود جی اس برخلاف بسیاری از ابزارها و پلتفرمهای دیگر، تعداد رشتههای پردازش درخواست ایجاد شده محدود هستند. علاوه بر آن پاسخ غیر مسدود کننده و غیر همزمان به درخواستها، باعث میشود نود جی اس مقیاس پذیرتر شود. نود جی اس میتواند تعداد درخواست بیشتری را مدیریت کند.
امکان ترکیب شدن با میکروسرویسها
زمانی که برای اولین بار پروژههای معرفی میشود، ساخت و استفاده از آن ساده است و در یک نسخه MVP معرفی میشود. این سرویس ارائه شده ممکن است به مرور زمان به تغییراتی نیاز داشته باشد. حتی گاهی اوقات سرویسهای اضافهای نیاز دارد که پس از ارائه آن باید به پروژه اضافه شوند. راحتترین راه برای اضافه کردن ویژگی و امانات جدید به یک برنامه، میکروسرویس است. میکروسرویسها کاربردهای زیادی دارند و به راحتی میتوان یک برنامه را به چندین میکروسرویس تقسیم کرده و هر کدام را به صورت جداگانه طراحی کرد. نود جی اس عملکرد بسیار خوبی در کار با میکروسرویسها دارد.
بزرگترین زیستبوم کتابخانههای منبع آزاد در دنیا
احتمالا هنگام مطالعه و کار با برنامه نود جی اس با اصطلاح “NPM” مواجه شدهاید و برایتان سوال شده باشد که چیست و چه کاربردی دارد؟ باید بگوییم که یکی از بزرگترین زیستبومهای بستهها و کتابخانه است که در نود جی اس وجود دارد. NPM دارای بیش از 1 میلیون بسته میباشد که همچنان نیز در حال رشد و توسعه است. رایگان بودن NPM باعث شده تا برنامهنویسان بسیاری از آن استفاده کرده و باعث رشد بیشتر آن شوند.
این اصطلاح در واقع نوعی ابزار خط فرمان است که برنامهنویسان میتوانند با مراجعه به سایت رسمی آن خیلی راحت بسته مورد نظر را پیدا کرده و تنها با یک دستور ساده آن را نصب کنند. استفاده و نصب NPM به کاربران این امکان را میدهد که به راحتی بستههای خود را مدیریت کنند. علاوه بر این قابلیت تنظیم اسکریپتهای سفارشی کاربران و مدیریت وابستگیها نیز با نصب این ابزار امکانپذیر است. این ابزار معمولا به صورت خودکار بر روی نود جی اس نصب است. اما اگر بخواهید بستههای مختلف این ابزار را نصب کنید کافیست با یک دستور ساده این کار را انجام دهید. به عنوان مثال:
| npm install <package-name>
دستور فوق برای نصب بسته در NPM است. شما همچنین میتوانید چندین بسته را به صورت همزمان باهم و در یک دستور به صورت زیر نصب کنید:
| npm install <pkg-1> <pkg-2> <pkg-3>
اگر بخواهید که بستهها به صورت سراسری در تمامی کدهای شما مورد استفاده قرار گیرد کافیست تا از پرچم g که مخفف عبارت Global است هنگام نصب آن استفاده کنید.
در NPM بستههای بسیار زیادی وجود دارد که محبوبترین آنها شامل: Express، MongoDB، Lodash، Moment، Commander.js، Forever، Async، Redisريال Mocha و Passport هستند.
مهمترین کاربردهای Node.js کدامند؟
قبل از ارائه نود جی اس، جاوا اسکریپت روز به روز در حال پیشرفت بود اما کاربرد خاصی در زمینه Back-end نداشت. به این دلیل بود که زیاد مورد استفاده قرار نمیگرفت. اما با توجه به مزیتها و کاربردهای زیاد نود جی اس اکنونجاوا اسکریپت نیز بسیار مورد استفاده قرار میگیرد. در ادامه به بررسی کاربردهای Node.js میپردازیم.
ساخت برنامه تک صفحهای
برنامههای تک صفحهای یا SPA که مخفف single-page app است، برنامههایی هستند که تمام صفحات و بخشها در یک صفحه طراحی و پیاده سازی شده است. معمولا spa برای ساخت برنامههایی مانند سایتهای اشتراک ویدیو، شبکههای اجتماعی، سرویس ایمیل و … استفاده میشود. یوتیوب یکی از مهمترین سایتهایی است که به این صورت ساخته شده است. یکی از بهترین انتخابها برای طراحی و ساخت برنامههای تک صفحهای نود جی اس است. دلیل این موضوع نیز این است که نود از برنامه نویسی نامتقارن پشتیبانی میکند.
ساخت بازیهای آنلاین
یکی از کاربردهای بسیار جذاب نود جی اس، طراحی بازیهای تحت وب است. استفاده از تکنولوژیهایی مانند HTML5 و ابزارهای جاوا اسکریپت به شما کمک میکند بازیهای بسیار جذابی ایجاد کنید.
ایجاد برنامههای RTA
RTA یا Real-time app به برنامههایی گفته میشود که به صورت لحظهای تغییرات مختلفی در آنها اعمال میشود. بسیاری از برنامهها مانند Google Sheets، Spreadsheets در این دسته برنامهها قرار میگیرند. این نوع برنامهها معمولا عملیاتهای سنگینی در بخش ورودی و خروجی انجام میدهند.
ساخت چت روم
یکی از پراستفادهترین برنامههای RTA، چت رومها یا همان پیام رسانها هستند. بسیاری از ما روزانه از این برنامهها استفاده میکنیم. شاید شما نیز علاقمند باشید چت روم اختصصای خود را ایجاد کنید. بهترین انتخاب برای ایجاد این چت رومها، نود جی اس است. با استفاده از نود جی اس میتوانید تمام موارد موردنیاز برای این برنامهها را پیاده سازی کنید. توجه به ترافیک بالای کاربران، سرعت بالای ارسال پیام، سبک بودن محصول و … از مواردی است که هنگام ایجاد چت روم باید به آنها توجه داشته باشید.
ساخت برنامههای مبتنی بر API REST
جاوا اسکریپت هم در فرانت اند و هم در بک اند مورد استفاده قرار میگیرد. سرور برای ارتباط با APIهای REST میتواند از نود جی اس استفاده کند. علاوه بر آن استفاده از بستههایی مانند Express.js و Koa در نود جی اس میتواند ساخت برنامههای وب را بسیار سادهتر و آسانتر کند. در زیر مراحل کلی برای ساخت برنامههای مبتنی بر API REST آورده شدهاند:
-
تعریف منابع (Resources): مشخص کنید که API شما چه منابعی را مدیریت میکند. هر منبع میتواند یک شئ (object) یا موجودیتی در سیستم شما باشد.
-
تعریف عملیات (Operations): مشخص کنید چه عملیاتهایی بر روی هر منبع انجام میشود. این عملیات میتوانند شامل درخواستهای GET، POST، PUT، DELETE و … باشند.
-
استفاده از HTTP Methods: استفاده از HTTP Methods برای انجام عملیاتها. GET برای درخواست اطلاعات، POST برای ایجاد منبع جدید، PUT یا PATCH برای بهروزرسانی منبع و DELETE برای حذف منبع.
-
استفاده از URI (Uniform Resource Identifier): هر منبع باید با یک URI یکتا شناسایی شود. این URI باید منبع را به طور یکتا مشخص کند.
-
استفاده از پارامترها: استفاده از پارامترها در درخواستها برای مشخص کردن جزئیات درخواست.
-
استفاده از Headers: استفاده از Headers در درخواستها برای انتقال اطلاعات اضافی مانند نوع داده، توکنهای احراز هویت و …
-
استفاده از Authentication: اعمال مکانیزمهای احراز هویت برای امنیت API.
-
مستندسازی (Documentation): ایجاد مستندات جامع برای API شما تا توسعهدهندگان بتوانند به راحتی از آن استفاده کنند.
-
تست و ایمنی: انجام تستهای کامل API و اطمینان از ایمنی درخواستها و پاسخها.
-
مدیریت خطا: رسیدگی به خطاها و ارسال پاسخهای مناسب با کدهای وضعیت HTTP.
معماری نود جی است چگونه است؟
معماری و اجزای مختلف Node.js از دیگر مباحث بسیار مهم در ارتباط با این پلتفرم است. نود جی اس از اجزای مختلفی تشکیل شده که در ادامه معرفی شدهاند.
- ماژولها: ماژولها به کتابخانههایی گفته میشود که در جاوا اسکرپیت وجود داشته و میتوانند توابع زیادی را در خود جای دهند. از این توابع در بخشهای مختلف استفاده میشود.
- میز فرمان: میز فرمان یا کنسول خود نوعی ماژول است که روشی را برای دیباگ کردن برنامه نوشته شده ارائه میدهد. این کنسول نیز همانند سایر کنسولهای جاوا اسکریپت ارائه شده و مرورگرهای مختلفی از آن پشتیبانی میکنند.
- خوشه یا کلاستر: نود بر اساس مفهوم برنامه نویسی تک رشتهای کار میکند. کلاستر به عنوان ماژولی معرفی میشود که هدف آن ایجاد فرآیندهای فرزند در پورتهای یکسان با سرور است. در واقع قابلیت چند رشتهای را در برنامه ایجاد میکند.
- اشیا سراسری: اشیا سراسری شامل توابع، ماژولها، رشتهها و … هستند که میتوان در تمام ماژولها از آنها استفاده نمود. Export، Require و … از مهمترین ماژولها هستند.
- رسیدگی به خطا: انواع مختلفی از خطاها مانند خطای استاندارد، خطای سیستمی، خطای کاربر و خطای ادعا در نود جی اس ایجاد میشود که برای اجرای درست برنامه باید به آنها رسیدگی کنید.
- استریم یا تحویل جریانی داده: استریم نوعی شی در برنامه است که باعث میشود به صورت مداوم خواندن و نوشتن امکان پذیر شود. جریانهای مختلفی نیز در نود جی اس وجود دارند.
- بافر: بافر نوعی دیگر از ماژول است که میتواند مدیریت جریانهای حاوی دادههای باینری را فراهم کند.
- دامنه: دامنه نیز ماژول دیگری است که برای رهگیری خطاهای کنترل نشده استفاده میشود.
- DNS: ماژول DNS برای اتصال به سرور و تفکیک نام دامنه استفاده میشود.
- دیباگر: دیباگر نوعی ابزار برای اشکال زدایی است که درون خود پلتفرم قرار گرفته است. این ابزار کاملا حرفهای نیست اما تعداد زیادی از خطاها را پیدا میکند.
بخشهای مختلف Node.js کدامند؟
Node.js از چندین بخش و کامپوننت تشکیل شده است که هر کدام وظایف خاصی در فرآیند اجرای برنامه های Node.js دارند. در ادامه به برخی از مهمترین آنها اشاره شده است:
V8 Engine
V8 موتور اجرایی جاوااسکریپت توسعه داده شده توسط Google است. این موتور مسئول اجرای کدهای جاوااسکریپت در محیط Node.js است و به طور بسیار سریع و بهینه این کدها را اجرا میکند.
Libuv
Libuv یک کتابخانه است که وظیفه مدیریت رویدادها و عملیات ورودی/خروجی (I/O) را برعهده دارد. این کتابخانه به Node.js امکان ایجاد برنامههای ناسازگار با همگامی (asynchronous) و مبتنی بر رویداد (event-driven) را میدهد.
ماژولها
Node.js از مفهوم ماژولها بهره میبرد. شما میتوانید کدهای خود را به صورت ماژولهای جداگانه تقسیم کرده و آنها را در برنامه خود به صورت مجدد استفاده کنید. این قابلیت کمک میکند تا برنامهها به صورت سازمان یافتهتری توسعه داده شوند.
Cluster
کلاستر (Cluster) نیز یکی از بخشهای مهم و اصلی Node.js است. کلاستر به توسعهدهندگان امکان ایجاد برنامههای چند نخی و چند پردازهای را در Node.js میدهد. از کلاستر میتوان برای مدیریت و اجرای برنامههای تحت وب با بار بالا و همچنین به منظور افزایش پایداری و قابلیت اطمینان برنامهها استفاده کرد. این بخش از Node.js به شما امکان میدهد تا به راحتی از ویژگیهای چند نخی و چند پردازهای در برنامههای خود استفاده کنید و بهینهترین عملکرد را از منابع سختافزاری موجود بگیرید.
Console
کنسول (Console) یکی از بخشهای مهم Node.js است. کنسول به توسعهدهندگان امکان ارتباط با محیط خط فرمان (Command Line) برای نمایش پیامها و اطلاعات مورد نیاز در طول اجرای برنامههای Node.js را فراهم میکند. شما میتوانید از متدهای مختلف کنسول نظیر console.log() برای نمایش پیامها، خطاها، اطلاعات متغیرها و دادههای مختلف در خروجی کنسول استفاده کنید.
گلوبال
گلوبال یا global یا یک (Object) در Node.js است که به عنوان محیط جهانی (Global Environment) عمل میکند. این محیط به توسعهدهندگان امکان ایجاد و دسترسی به متغیرها و توابعی که در سطح کل برنامه قرار دارند را فراهم میکند. به طور معمول، توسعهدهندگان Node.js میتوانند متغیرها و توابع را به global اضافه کنند تا به عنوان متغیرها و توابع جهانی در برنامه شان قابل دسترسی باشند.
خطاهای Node.js کداماند؟
اکنون که به خوبی میدانید، Node.js چیست باید با خطاهای آن نیز آشنا شوید. معمولا در Node.js چهار نوع خطا رخ میدهد که در پایین آنها را به شما معرفی میکنیم.
- خطای استاندارد جاوا اسکریپت: در js، خطای استاندارد جاوااسکریپت (JavaScript Standard Error) به معنای خطاهایی است که در فرآیند اجرای کد JavaScript رخ میدهند. این خطاها معمولا با استفاده از توابع throw ایجاد میشوند و میتوانند توسط دستورات try-catch در برنامههای Node.js رسیدگی شوند. مثالهایی از خطاهای استاندارد جاوااسکریپت در Node.js عبارتند از:
- Syntax Error: زمانی که کد ناقص باشد این خطا به نمایش گذاشته میشود.
- Reference Error: این خطا وقتی رخ میدهد که تلاش برای دسترسی به متغیر یا شیءی که وجود ندارد انجام شود.
- Type Error: این خطا در صورت تلاش برای انجام عملیات نامعتبر روی نوع داده مشخصی رخ میدهد،
- خطای سیستمی: خطای سیستمی در js به خطاهایی اشاره دارد که به مشکلات مرتبط با عملکرد سیستم عامل یا منابع سیستمی مربوط میشوند. این خطاها ناشی از مواردی مانند عدم دسترسی به فایلها یا دایرکتوریها، خطاهای شبکه، مشکلات پورتهای استفاده شده و .. است. از مهمترین خطاهای سیستمی در نود جی اس میتوان به موارد زیر اشاره کرد:
- EACCESS: این خطا وقتی رخ میدهد که برنامه تلاش برای دسترسی به یک فایل یا دایرکتوری داشته باشد، اما مجوز کافی برای انجام این عملیات را نداشته باشد.
- ECONNREFUSED: این خطا وقتی رخ میدهد که برنامه تلاش برای برقراری اتصال به یک میزبان در شبکه داشته باشد، اما میزبان مقصد اتصال را رد کند.
برای مدیریت و رسیدگی به خطاهای سیستمی، میتوانید از دستورات try-catch برای عملیات مربوط به سیستمی یا استفاده از توابع callback برای پردازش خطاها استفاده کنید.
- خطای کاربر خاص: خطای کاربر خاص در js به خطاهایی اشاره دارد که مرتبط با ورودی یا اعمال خاص کاربر در برنامه میشوند. این نوع خطاها به طور عمده ناشی از ورودیها یا اقدامات کاربر در برنامهها هستند و باید توسط برنامه نویس برای رسیدگی به آنها پیشبینی و مدیریت شوند.
- خطای ادعا: خطای ادعا (Assertion Error) در js و جاوااسکریپت به وقوع میپیوندد و وقتی که ادعایی (یا شرطی) که توسط برنامه نویس ارائه شده است نادرست باشد، ایجاد میشود. این خطاها به عنوان یک ابزار برای تست و اعتبارسنجی برنامهها استفاده میشوند و به برنامه نویس اجازه میدهند تا ادعاهای مشخصی را در کد خود بررسی کنند تا مطمئن شوند که برنامه به درستی اجرا میشود.
سخن پایانی
بوت کمپ برنامه نویسی مپصا HR (bootcamp.mapsahr) در طول سالهای فعالیت خود تمام تلاش خود را به کار گرفته است تا جدیدترین، مفیدترین و مهمترین اطلاعات در زمینه فناوری به ویژه هوش مصنوعی را در اختیار علاقهمندان به فناوری قرار دهد. اگر شما هم مایل به آشنایی با مفاهیم مختلف در زمینه هوش مصنوعی هستید، به شما توضیه میکنیم تا به بلاگهای بارگذاری شده در بوت کمپ مپصا نگاه کنید. از جمله مهمترین بلاگهای بارگذاری شده در این بوت کمپ میتوان به مواردی مانند کد نویسی چیست؟ بهترین راه برای شروع کد نویسی، هوش مصنوعی میدجورنی (Midjourney) چیست؟ چگونه از میدجورنی استفاده کنیم؟، آموزش تبدیل متن به فضای سه بعدی با هوش مصنوعی، هاست Node.js چیست؟ راهنمای خرید سرور مناسب نود جی اس (هاست ابری برای node.js)، معرفی فریم ورکهای زبان برنامه نویسی پایتون برای طراحی سایت و .. بزنید.