سبد خرید شما خالی است
همانطور که میدانید فریمورک جنگو Django یکی از فریمورک های محبوب برای پیاده سازی بک اند در وبسایت میباشد و این فریمورک قدرتمند هر کاری
را که بخواهید برای شما انجام میدهد یکی از کار هایی که خیلی مورد نیاز اکثر پروژه ها و وبسایت ها است ایجاد api برای آنها است و فریمورک Django Rest Framework به شما این امکان را میدهد که در پروژه های جنگویی خود api هم ایجاد کنید
مقالات پیشنهادی:
دوره های پیشنهادی:
Django Rest Framework چیست ؟
جنگو رست فریمورک (Django Rest Framework) با به اختصار DRF یک فریمورک برای پیاده سازی api در فریمورک Django میباشد که ساختار های آن بسیار شبیه به فریمورک جنگو است و این فریمورک روی یک پروژه جنگویی که از قبل ساخته شده است نصب میشود و این امکان را به پروژه شما میدهد که بتوانید در سریع ترین زمان ممکن api های قدرتمندی ایجاد کنید
دوره های پیشنهادی :
آموزش رایگان Django Rest Framework | ایجاد api با جنگو
قبل از هرچیزی که بخواهیم وارد دنیای جنگو رست فریمورک شویم باید با api آشنا باشیم که مخفف کلمه Application Programing Interface یا همان رابط کاربردی برنامه نویسی است و به برنامه نویسان کمک میکند که محصولی که تولید کرده اند با سایر محصولات دیگر ارتباط برقرار کند و تبادل اطلاعات بین یک یا چند برنامه ساده تر بشود و هرکدام داده ها را با یک فرمت خاص دریافت کرده و به فرمتی که خودشان میخواهند به نمایش بگذارند و همچنین درصورت نیاز میتوانند داده ها را نیز تغییر دهند به عنوان مثال وبسایتی مثل instagram نیز برای ارسال اطلاعات به اپلیکیشن های موبایلی خود از api استفاده میکند و برنامه نویسان موبایل تنها با دسترسی به api آن داده ها را در نرم افزار خود مبادله میکنند ...
برای درک بهتر به تصویر زیر دقت کنید
خب همانطور که مشاهده میکنید api واسطی است بین سرور اصلی ما و دستگاه یا همان کلاینت ما که وقتی درخواستی از سمت کلاینت ما به api ارسال میشود api این درخواست را به سرور اصلی برده و در آنجا پردازش های لازم انجام میشود و بعد درخواست کاربر به فرمت خاصی به سمت اپلیکیشن های ما ارسال میشود و در آن اپلیکیشن ها هرطور که مایل باشیم اطلاعات را به کاربر نمایش میدهیم یا میتوانیم همچنین اطلاعاتی نیز به سمت سرور ارسال کنیم که موجب تغییرات در دیتابیس سرور نیز بشود و با این کار ما میتوانیم یک بار یک بک اند را ایجاد کرده و بعد از آن به فرانت اند های مختلف یا بهتره بگم به اپ های مختلف ارسال کنیم داده ها را تا آن ها همانطور که میخواهند به کار بگیرند
همانطور که در ابتدای مقاله گفتیم این فریمورک بر روی یک پروژه جنگویی از قبل ساخته شده نصب میشود و نحوه ی عملکرد آن به این صورت است که وقتی درخواستی به سمت یک url ما ارسال میشود جنگو رست فریمورک در View چک میکند که آیا درخواست ارسال شده یک درخواست قابل قبول برای View ما هست یا خیر پس از تایید درخواست بنا به نیاز آن درخواست اطلاعاتی از درون دیتابیس واکشی میشود و پس از تبدیل کردن به فرمت قابل قبول برای ارسال از طریق Api به صورت Json از طریق یک Http Response به همراه دیتا های مورد نیاز و Status Code آن به کلاینت ما ارسال میشود
آشنایی با انواع مهم ترین Http Request ها در Api:
همانطور که در جنگو وقتی ما میخواستیم دیتایی به سمت سرور ارسال کنیم از متد POST کمک میگرفتیم و همچنین وقتی یک صفحه را لود میکردیم
درواقع از متد GET استفاده میکردیم
حالا وقت آن رسیده که یک پروژه جنگو ایجاد کنیم و پس از نصب جنگو رست فریمورک بر روی آن Api حالا لازم برای خود را ایجاد کنیم
در ابتدا یک فولدر ایجاد میکنیم و سپس به درون آن فولدر پیمایش میکنیم و پروژه جنگو خود را ایجاد میکنیم از طریق cmd اگر با نحوه ی ایجاد کردن
یک پروژه جنگو آشنا نیستید میتوانید از لینک مقاله ای که در ابتدا گذاشتیم استفاده کنید
mkdir django-project
cd django-project
پس از آن با استفاده از venv پایتون یک venv برای پروژه خود ایجاد میکنیم و آن را فعال میکنیم به ترتیب دستورات زیر را وارد کنید
python venv venv
cd venv
cd Scripts
activate
پس از اکتیو کردن محیط ایزوله ی خود حال نوبت به نصب جنگو و جنگو رست فریمورک(DRF) و کتاب خوانه های مورد نیاز برای Django Rest میرسد
pip install django
pip install djangorestframework
pip install markdown
pip install django-filter
پس از نصب موارد مورد نیاز حال نوبت به ساخت پروژه جنگو و اضافه کردن Django Rest Framework به قسمت INSTALLED_APPS پروژه میباشد
. django-admin startproject django_rest_project
با استفاده از دستور django-admin یک پروژه با نام django_rest_project ایجاد میکنیم و حال در قسمت settings.py این پروژه "rest_framework" را اضافه میکنیم
خب حال نوبت ایجاد کردن یک app برای api خود هستیم که من اسم اپ خودم را blog قرار میدهم
python manage.py startapp blog
بعد از ایجاد کردن اپ بلاگ باید آن را مطابق شکل بالا که جنگو رست را اضافه کردیم به تنظیمات پروژه خود قسمت اپ های نصب شده اضافه کنیم
خب در بخش این باید مدل های مورد نیاز برای اپ بلاگ را در models.py ایجاد کنیم
خب مدلی که برای Article ها طراحی کردیم به این شکل میباشد دقت کنید که چون اینجا یک فرایند تستی است مدل ما مدلی ناقص است و در پروژه های خود مدل های خود را به این صورت پیاده نکنید قطعا مدل مقالات باید فیلد های بیشتری اعم از دسته بندی و غیره داشته باشد
حال نیاز است تا مدل خود را به admin.py اضافه کنیم تا بتوانیم در پنل ادمین مقاله ای ایجاد کنیم
پس از ایجاد کردن مدل ها نوبت به ثبت کردن آن ها در دیتابیس و یا بهتره بگوییم انجام عملیات migration میباشد
python manage.py makemigrations
python manage.py migrate
اگر یادتان باشد در ابتدای مقاله وقتی نحوه ی عملکرد رست فریمورک را بررسی میکردیم گفتیم که مدل های دیتابیس پروژه ی جنگویی ما باید به یک فرمت خاص تبدیل شوند که برای تبدیل شدن به داده های آن ها به صورت json با مشکل روبه رو نشوند به این عملیات میگویند نوشتن Serializer برای مدل های پروژه
در ابتدا نیاز دارید تا یک فایل درون فولدر اصلی اپ خود به نام serializers ایجاد کنید و در آن serializer های خود را برای هر مدلی که در دیتابیس ساختیم بسازیم که جنگو رست فریمورک بتواند آبجکت ها یا همان داده های مدل های مارا به صورت json یا خروجی مورد نیاز به کاربر نشان دهد
خب حال درون این فایل باید از serializer پیشفرض رست فریمورک استفاده کنیم و از طریق آن Serializer مورد نظر برای مدل خود را ایجاد کنیم
خب در این قسمت serializer مورد نیاز خودمان را نوشتیم و همه ی فیلد های مدل article را انتخاب کردیم که در حروجی api ما نمایش داده شوند
پس از این مرحله نوبت به نوشتن view مورد نظر برای مدیریت api ما میباشد وارد فایل view.py شوید و کد های زیر را قرار دهید
خب در ابتدا باید موارد مورد نیاز برای نوشتن یک api با رست فریمورک را به درون فایل خود ایمپورت کنیم و پس از آن تابع مربوط به api خود را ایجاد کرده و درون آن یک کوئری به درون مدل مقالات زده و تمامی مقالات را واکشی کرده تا به کاربر نمایش دهیم و پس از واکشی کردن مقالات حال باید آن لیست مقالات را به serializer ی که ساختیم داده تا بتواند این مقالات را به فرمت قابل ارسال برای کاربر تبدیل کند و پس از آن یک Response که مربوط
به رست فریمورک است برمیگردانیم و به عنوان دیتا serailizer.data و به عنوان status کد status 200 را که از رست فریمورک ایمپورت کردیم میدهیم
حال نیاز است تا تنظیمات مربوط به فایل urls.py را برای اپ بلاگ و همچنین url اصلی پروژه اضافه کنیم درون فولدر اصلی اپ بلاگ یک فایل به نام urls.py ایجاد کرده و کد های زیر را قرار میدهیم و api خود را به url مربوطه متصل میکنیم
حال وارد فولدر پروژه شوید و فایل urls.py django_rest_project را باز کنید و کد های زیر را اضافه کنید
خب تبریک api شما اماده است حال نیاز است پروژه را ایحاد کرده و یک سوپر یوزر بسازید و پس از آن یک مقاله ایجاد کنید و خروجی پروژه را مشاده کنید
python manage.py createsuperuser
python manage.py runserver
پس از ایجاد یک superuser نیاز است تا وارد پنل ادمین به آدرس :http://127.0.0.1:8000/admin شوید و یک مقاله ایجاد کنید پس از ایجاد مقاله آدرس api خود را وارد کنید و خروجی شما به صورت زیر میباشد
دقت داشته باشید ما در اینجا یک api ساختیم که داده های درون دیتابیس را به ما نشان بدهد
جمع بندی:
همانطور که مشاهده کردید جنگو رست فریمورک یک گزینه مناسب برای ایجاد api برای پروژه جنگویی شما میباشد و میتوانید خیلی راحت و به سرعت جنگو api های قدرتمندی ایجاد کنید و یک فریمورک کامل برای ایجاد api میباشد
برای درح نظر ابتدا وارد شوید !
نظرات