آموزش Django Rest Framework

دسته بندی: آموزش پایتون (Python)

آموزش فریمورک جنگو رست

آنچه در این صفحه می خوانید:

معرفی Django REST framework

فریمورک Django REST یک ابزار قدرتمند و انعطاف پذیر برای ساخت API های وب است. این فریمورک منبع باز از کتابخانه ی پایتون و جنگو پشتیبانی می کند. یکی از تفاوت های اصلی بین Django REST framework و دیگر فریمورک ها این است که به توسعه دهندگان اجازه می دهد که ساختار URL را تعریف کنند و به یک تولید خودکار متکی نیستند. این یک ابزار انعطاف پذیر و کاملاً برجسته با معماری مدولار و قابل تنظیم است که امکان توسعه نقاط انتهایی API ساده ، کلید-کلید و سازه های پیچیده REST را ممکن می سازد. تنها وابستگی های فریمورک REST به پایتون و جنگو می باشد. همه بسته های دیگر اختیاری هستند، به عنوان مثال برای فیلتر و پشتیبانی OAuth یاMarkdown ،PyYAML ، defusexml برای Markdown ،YAML، انواع محتوا پشتیبانی می کند.

فریمروک Django REST شامل مجموعه گسترده ای از ویژگی های باکس است، اما کلاس نمای اصلی بسیار ساده است و فریمورک، به طور کلی، استفاده از آن آسان است. ایده اصلی پشت DRF تقسیم واضح یک مدل، ارائه کلی مانند JSON ،XML و غیره) و مجموعه ای از Class-Based-Views که می تواند برای برآوردن نقطه پایانی API خاص با استفاده از Serializer که نقشه برداری بین آنها را توصیف می کند، سفارشی سازی شود.

دلایلی که ممکن است بخواهید از فریمروک REST استفاده کنید:

  • Web browsable API یک قابلیت بزرگ برای توسعه دهندگان شما است.
  • خط مشی های تأیید اعتبار شامل بسته هایی برای OAuth1a و OAuth2.
  • سریالایزر ها که از منابع داده ORM و غیر ORM پشتیبانی می کند.
  • قابلیت تنظیم کردن راه پایین؛ در صورتی که به ویژگی های بیستری نیاز ندارید فقط از ویو منظم مبتنی بر عملکرد استفاده کنید.
  • مستندات گسترده و پشتیبانی عالی جامعه.
  • مورد استفاده و مورد اعتماد شرکت های معتبر بین المللی از جمله موزیلا، رد هت، Heroku و Eventbrite است.

ویژگی های Django REST framework

یکی از تفاوت های اصلی بین Django REST framework و دیگر فریمورک ها این است که به توسعه دهندگان اجازه می دهد که ساختار URL را تعریف کنند و به یک تولید خودکار متکی نیستند. علاوه بر این، Django REST Framework شامل مرورگر API داخلی برای آزمایش API تازه توسعه یافته است. API وب که با DRF توسعه یافته است غنی و قابل مشاهده در وب، پشتیبانی از طیف گسترده ای از انواع رسانه ها، احراز هویت و خط مشی های اهراز هویت. داده های نمایش API می توانند از نمایشگرهای مبتنی بر عملکرد استاندارد با نمایش کلاس قدرتمند برای عملکردهای پیچیده تر استفاده کنند. از آنجا که احراز هویت به عنوان مکانیسم ارتباط یک درخواست ورودی با مجموعه ای از اعتبارنامه های شناسایی یکی از ویژگی های اصلی است، DRF مجموعه ای از خط مشی های احراز هویت (از جمله OAuth1a و OAuth2) فراهم می کند و فرصتی برای توسعه طرح های سفارشی می دهد.

مزایای اصلی فریمورکREST جنگو:

  • سادگی، انعطاف پذیری، کیفیت و پوشش تست کد منبع
  • موتور سریال سازی قدرتمند سازگار با منابع داده ORM و غیر ORM
  • تنظیم و سفارش سازی آسان امیترها، پارسیزرها، اعتبار سنجندگان و تأیید کننده های احراز هویت
  • پشتیبانی از ModelResources
  • استفاده از هدرهای پذیرش HTTP
  • صفحه بندی ساده
  • انتشار ابرداده همراه با querysets
  • کلاس های مجوز و مدیریت کنترل
  • بکار گیری آن در شرکت های بین المللی شناخته شده از جمله موزیلا، Red Hat ،Heroku و Eventbrite
  • مستندات گسترده و پشتیبانی بزرگ جامعه

DRF با قابلیت انعطاف پذیری اجازه می دهد تا ابزارهای فریمورک را بر اساس خواسته های برنامه نویسان توسعه داده و سفارشی کند که به طور چشمگیری زمان توسعه را کاهش می دهد.

کاربرد Django REST framework

اما چرا باید استفاده از فریمروک REST Django را انتخاب کنم؟ چرا از کتابخانه دیگر یا حتی فقط از نماهای استاندارد جنگو استفاده نمی کنیم؟ پاسخ سریع به این سوال ساده است: بهره وری. همانطور که نشان می دهد، شما فقط به چند خط نیاز دارید تا endpoint در حال اجرا باشد. شما نه نیازی به جادو و نه به اتصال هزاران سیم دارید. سطح انتزاعی که DRF ارائه می دهد به اندازه کافی بالا است.

علاوه بر این، مزایای دیگری برای فریمروک Django REST وجود دارد:

  • مرورگر API HTML
  • تیم توسعه / پشتیبانی تمام وقت
  • سریال سازی داده های ORM و NON-ORM
  • انجمن
  • یکی از بهترین مستندات در بین لیست های پایتون
  • احراز هویت قابل حل با TheAuth ، theAuth2 و Social Auth
  • لیب های شخص ثالث

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

مثال های Django REST framework

بیایید یک مثال سریع استفاده از فریمورک REST برای ساخت یک API ساده پشتیبان مدل را بررسی کنیم. ما برای دسترسی به اطلاعات مربوط به کاربران پروژه خود، یک API نوشتن خواندن ایجاد خواهیم کرد. هر تنظیمات گلوبال برای یک API فریمورک REST در یک فرهنگ لغت پیکربندی واحد به نام REST_FRAMEWORK نگهداری می شود. با اضافه کردن موارد زیر به ماژول settings.py خود شروع کنید:

REST_FRAMEWORK = {
    # Use Django's standard `django.contrib.auth` permissions,
    # or allow read-only access for unauthenticated users.
    'DEFAULT_PERMISSION_CLASSES': [
        'rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly'
    ]
}

فراموش نکنید که مطمعن شوید که rest_framework را نیز به INSTALLED_APPS خود اضافه کرده اید. ما اکنون آماده هستیم تا API خود را ایجاد کنیم. در اینجا ماژول اصلی urls.py ریشه پروژه ما آورده شده است:

from django.conf.urls import url, include
from django.contrib.auth.models import User
from rest_framework import routers, serializers, viewsets

# Serializers define the API representation. class UserSerializer(serializers.HyperlinkedModelSerializer): class Meta: model = User fields = ['url', 'username', 'email', 'is_staff']

# ViewSets define the view behavior. class UserViewSet(viewsets.ModelViewSet): queryset = User.objects.all() serializer_class = UserSerializer

# Routers provide an easy way of automatically determining the URL conf. router = routers.DefaultRouter() router.register(r'users', UserViewSet)

# Wire up our API using automatic URL routing. # Additionally, we include login URLs for the browsable API. urlpatterns = [ url(r'^', include(router.urls)), url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')) ]

اکنون می توانید API را در مرورگر خود به آدرس /http://127.0.0.1:8000 باز کنید و 'API 'users جدید خود را مشاهده کنید. اگر از کنترل ورود به سیستم در گوشه بالا سمت راست استفاده می کنید، می توانید کاربران را از سیستم اضافه کرده، ایجاد و حذف کنید.

آیا این نوشته را دوست داشتید؟
linkedin-advanced-web-development-with-django

آموزش توسعه وب پیشرفته با جنگو


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

1399/02/24 2674 بازدید زیرنویس دارد
udemy-react-django-full-stack-web-app-backend-api-mobile-apps

دوره فول استک جنگو و ری اکت: اپلیکیشن وب، API و برنامه موبایل


برنامه وب تک صفحه ای، Django 2 REST API با Python 3، برنامه های کراس پلتفرم تلفن همراه ری اکت نیتیو را برای Android و iOS ایجاد کنید. این دوره عمدتا م...

1399/02/02 4316 بازدید زیرنویس دارد
linkedin-building-angular-and-django-apps

آموزش ساخت اپلیکیشن های Angular و Django


دانش Angular و Django REST خود را بیازمایید. در این دوره، به Rudolf Olah بپیوندید زیرا او به بررسی پیچیدگی های جفت کردن این دو فریمورک برای ساخت وب اپ...

1399/01/12 1501 بازدید زیرنویس دارد
linkedin-building-react-and-django-apps

ساخت اپلیکیشن های React و Django


کشف کنید که چگونه می توان قدرت عملکرد فرانت اند فریمورک React را با بهترین بک اند های Django برای ساخت اپلیکیشن های فول استک ترکیب کرد. در این دوره، ب...

1398/12/14 6682 بازدید زیرنویس دارد
teamtreehouse-django-rest-framework

آموزش Django Rest Framework


Django Rest Framework به اختصار DRF، یک فریمورک قدرتمند و قابل انعطاف در بالای یک فریمورک (Django)، برای ساختن API های RESTful وب است. ویژگی های داخلی...

1398/10/29 4068 بازدید
packtpub-learning-angular-for-django-developers

آموزش انگولار برای توسعه دهندگان جنگو


آیا می خواهید با پایتون اپلیکیشن های حیرت آور بسازید؟ این دوره مهارت های شما در استفاده از انگولار برای ساخت فرانت اند و جنگو برای ساخت بک اند یک پروژ...

1398/03/17 4284 بازدید
django-rest-framework-tutorial

آموزش ساخت وب سرویس با پایتون و Django Rest Framework


اگر قصد دارید برای یک پروژه بزرگ، پربازدید و با حجم داده بالا یک وب سرویس طراحی کنید، زبان برنامه نویسی پایتون و فریمورک قدرتمند Django Rest Framework...

1396/11/16 8077 بازدید
1396/08/24 4551 بازدید