

Django Rest Framework Kullanımı 2023, Python programlama dili ile yazılmış Django web framework’ü için bir eklentidir. Bu eklenti, Django ile API’ler (Application Programming Interface) oluşturmak için bir araç seti sağlar. Django Rest Framework, web tabanlı uygulamaların sunucu tarafında API’ler oluşturmak ve RESTful API’lerin yönetimini kolaylaştırmak için kullanılan açık kaynaklı bir yazılımdır.
Django Rest Framework ile RESTful API’ler oluşturmak oldukça kolaydır. İlk olarak, Django Rest Framework’ü kurmanız gerekir. Bunun için, terminale şu komutu yazmanız yeterlidir:
pip install djangorestframework
Django projesinde rest_framework uygulamasını kullanabilmek için, projenin settings.py dosyasında aşağıdaki kodu eklemeniz gerekiyor:
INSTALLED_APPS = [
...
'rest_framework',
...
]
Django Rest Framework Serializers Oluşturma
Daha sonra, serializers.py dosyasında veri modellerinizin serileştirilmesini sağlayacak sınıfları tanımlamanız gerekiyor. Serializer’lar, Django model nesnelerini JSON veya XML gibi formatlara dönüştürmek için kullanılır. Django Rest Framework Kullanımı 2023 yazımızı okumaya devam ediniz.
from rest_framework import serializers
from .models import MyModel
class MyModelSerializer(serializers.ModelSerializer):
class Meta:
model = MyModel
fields = ('id', 'name', 'description', 'created_at')
Son olarak, views.py dosyasında API endpoint’leri oluşturmanız gerekiyor. API endpoint’leri, istemcilerin veriye erişebileceği URL’lerdir.
Django Rest Framework End Point Oluşturma
from rest_framework import viewsets
from .serializers import MyModelSerializer
from .models import MyModel
class MyModelViewSet(viewsets.ModelViewSet):
queryset = MyModel.objects.all()
serializer_class = MyModelSerializer
Bu örnekte, MyModel nesneleri için CRUD (Create, Read, Update, Delete) işlemleri sağlayacak bir view seti oluşturduk.
Bu adımlardan sonra, Django Rest Framework’ü kullanarak API endpoint’leri oluşturabilirsiniz. Örneğin, MyModel nesnelerine erişmek için bir GET isteği yapmak istiyorsanız, şu URL’yi kullanabilirsiniz:
GET /api/mymodel/
Django Rest Framework, RESTful API’lerin oluşturulması ve yönetimi için birçok araç sağlar. Bu araçlar arasında pagination (sayfalama), filtering (filtreleme), authentication (kimlik doğrulama), ve permission (izin) gibi özellikler yer almaktadır. Bu özellikler sayesinde API’lerinizi daha güvenli, ölçeklenebilir ve kullanışlı hale getirebilirsiniz.
Django Rest Framework, Django ile birlikte çalışan bir eklenti olduğu için Django’yu öğrenmiş olan birisi, bu eklentiyi de kolayca kullanabilir. Django Rest Framework ile API oluşturmak, Django’nun Model-View-Template (MVT) mimarisine dayanır. Bu mimaride, modeller veritabanı yapılarını temsil eder, view’ler ise uygulama mantığını içerir ve template’ler de HTML, CSS ve JavaScript dosyaları ile sayfaların tasarımını yapmaya yarar.
Django Rest Framework ile API oluşturmak da benzer bir şekilde, model tanımlamak, view oluşturmak ve template kullanmak gibi adımları içerir. Ancak template kullanmak yerine, API endpoint’leri için URL’ler ve response formatları tanımlanır. Bu sayede, istemciler (örneğin web uygulamaları, mobil uygulamalar veya diğer web servisleri) bu API endpoint’lerine istek gönderebilir ve cevap alabilir.
Django Rest Framework’ün en önemli özelliklerinden birisi, RESTful API’lerin oluşturulmasını kolaylaştıran araçlar sunmasıdır. Bu araçlar arasında, sayfalama (pagination), filtreleme (filtering), sıralama (sorting), kimlik doğrulama (authentication) ve izinler (permissions) gibi özellikler yer almaktadır.
Sayfalama özelliği, API endpoint’lerinin büyük miktarda veri döndürmesi durumunda kullanışlı olur. Bu sayede, API’ye yapılan istekler sayfalar halinde alınır ve istemciye gönderilir. Bu işlem, veri trafiğini azaltır ve API performansını artırır.
Filtreleme özelliği, API endpoint’lerinden sadece belirli kriterlere uyan verilerin döndürülmesini sağlar. Bu sayede, istemci sadece istediği verileri alabilir ve gereksiz veri trafiği önlenebilir.
Sıralama özelliği, API endpoint’lerindeki verilerin belirli bir sıraya göre döndürülmesini sağlar. Bu sayede, istemci verileri belirli bir düzende alabilir.
Kimlik doğrulama özelliği, API endpoint’lerine erişimi sınırlandırmak için kullanılır. Bu özellik sayesinde, sadece yetkili kullanıcılar API endpoint’lerine erişebilir.
İzinler özelliği, API endpoint’lerine erişimi sınırlandırmak için kullanılır. Bu özellik sayesinde, sadece belirli kullanıcılar veya gruplar API endpoint’lerine erişebilir.
Django Rest Framework URL Yapısı
URL (Uniform Resource Locator), bir web sitesindeki belirli bir kaynağın (örneğin, bir web sayfasının veya bir resmin) adresini tanımlayan bir dizedir. URL, genellikle bir web tarayıcısındaki adres çubuğunda görüntülenen bir dizedir ve belirli bir web sitesinin belirli bir sayfasına erişmek için kullanılır.
Django Rest Framework’te, URL’ler API endpoint’lerine erişmek için kullanılır. Django’nun standart URL yönlendirme mekanizmasından farklı olarak, DRF’de URL’lerin yönlendirilmesi işlemi, bir router (yönlendirici) tarafından yapılır.
DRF’de bir router oluşturmak için, views.py dosyasında yer alan view’leri router’a kaydetmemiz gerekiyor. Bu kayıt işlemi için, router’ın register() yöntemi kullanılır. Bu yöntem, view’ün adını ve URL şablonunu belirterek, URL’yi yönlendirmek için gerekli ayarları yapar.
Örneğin, bir blog uygulamasında makaleleri listelemek için bir API endpoint’i oluşturmak istediğimizi varsayalım. Bu API endpoint’i, /api/articles adresinde erişilebilir olmalıdır. Bunun için, öncelikle views.py dosyasında bir view oluşturmalıyız. Bu view, makaleleri listeleyen bir işlev içerebilir. Daha sonra, bu view’i router’a kaydedebiliriz.
Örnek olarak, views.py dosyasında aşağıdaki gibi bir view tanımlayabiliriz:
from rest_framework.response import Response
from rest_framework.decorators import api_view
@api_view(['GET'])
def article_list(request):
# Makaleleri listeleyen kodlar burada
return Response(...)
Bu view, GET istekleri için bir HTTP response döndürür ve makaleleri listeleyen kodlar içerir.
Daha sonra, urls.py dosyasında router’ı oluşturabiliriz:
from django.urls import path
from rest_framework import routers
from .views import article_list
router = routers.DefaultRouter()
router.register(r'articles', article_list)
urlpatterns = router.urls
Burada, router’ın register() yöntemi kullanılarak, article_list view’i “articles” URL’ine kaydedilir. Bu sayede, /api/articles URL’si, article_list view’ini çağıran bir API endpoint’i haline gelir.
Son olarak, settings.py dosyasında DRF’yi yapılandırmalıyız. Bunun için, INSTALLED_APPS listesine ‘rest_framework’ uygulamasını eklemeliyiz.
DRF’nin URL yapısı, Django’nun URL yönlendirme mekanizmasına benzer bir şekilde çalışır, ancak API endpoint’lerini tanımlamak için router’lar kullanır. Bu sayede, DRF ile API endpoint’leri oluşturmak ve yönetmek oldukça kolay hale gelir.
Django Rest Framework POST Örneği
Öncelikle, models.py dosyasında bir model tanımlayalım. Bu örnekte, basit bir Not modeli tanımlayacağız:
from django.db import models
class Note(models.Model):
title = models.CharField(max_length=255)
content = models.TextField()
created_at = models.DateTimeField(auto_now_add=True)
Daha sonra, serializers.py dosyasında bu model için bir serializer tanımlayacağız. Serializer, model verilerini JSON gibi veri formatlarına dönüştürmek için kullanılır:
from rest_framework import serializers
from .models import Note
class NoteSerializer(serializers.ModelSerializer):
class Meta:
model = Note
fields = '__all__'
Bu serializer, tüm Note model alanlarını kullanarak JSON formatına dönüştürür.
Ardından, views.py dosyasında POST isteğine yanıt verecek bir view tanımlayacağız. Bu view, yeni bir not eklemek için bir POST isteği aldığında, gelen verileri alacak ve veritabanına yeni bir Note kaydı oluşturacaktır:
from rest_framework.decorators import api_view
from rest_framework.response import Response
from .serializers import NoteSerializer
@api_view(['POST'])
def create_note(request):
serializer = NoteSerializer(data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=201)
return Response(serializer.errors, status=400)
Bu view, POST isteği alır, NoteSerializer kullanarak verileri doğrular ve veritabanına yeni bir Note kaydı oluşturur. Eğer serializer verileri doğrulayamazsa, hataların bir listesini döndürür.
Son olarak, urls.py dosyasında bu view’i router’a kaydedebiliriz:
from django.urls import path
from rest_framework import routers
from .views import create_note
router = routers.DefaultRouter()
router.register(r'notes', create_note)
urlpatterns = router.urls
Burada, router’ın register() yöntemi kullanılarak, create_note view’i “notes” URL’ine kaydedilir. Bu sayede, /api/notes URL’si, create_note view’ini çağıran bir API endpoint’i haline gelir.
Bir POST isteği göndermek için, örneğin curl kullanabiliriz:
curl -X POST http://localhost:8000/api/notes/ -H "Content-Type: application/json" -d '{"title":"Not Başlığı","content":"Not İçeriği"}'
Bu, “Not Başlığı” ve “Not İçeriği” verileriyle yeni bir not oluşturur ve HTTP 201 Created yanıtı döndürür.
Django Rest Framework Kullanımı 2023 kullanımı yazımızı sonlandırıyoruz. Okuduğunuz için teşekkürler.
Kıvırcık yazılımcı olarak Django Rest Framework Kullanımı 2023 konusuna çözüm bulmaya çalıştık. Dilerseniz soru cevap sitemizde bu durumu paylaşabilirsiniz.
Etiketler:
- django
- python
- web-framework
- web-development
- django-models
- django-views
- django-templates
- django-forms
- database
- web-design
- Django Rest Framework Kullanımı 2023
- Django Rest Framework Kullanımı 2023
- Django Rest Framework Kullanımı 2023
- Django Rest Framework Kullanımı 2023
- Django Rest Framework Kullanımı 2023
- Django Rest Framework Kullanımı 2023
- Django Rest Framework Kullanımı 2023