Takip et

Django REST Framework ile Öğrenci Yönetim Sistemi API’si: Fonksiyon Tabanlı Görünümler

Django REST Framework ile Öğrenci Yönetim Sistemi API’si: Fonksiyon Tabanlı Görünümler

Merhaba! Bu yazıda, Django REST Framework’ü kullanarak fonksiyon tabanlı görünümlerle bir öğrenci yönetim sistemi API’si nasıl oluşturacağınızı adım adım açıklayacağım. Fonksiyon tabanlı görünümler, özellikle daha küçük ve basit projelerde, class tabanlı görünümlere göre daha temiz ve anlaşılır bir yaklaşım sunabilir. Bu rehberde, temel CRUD (Create, Read, Update, Delete) işlemlerini nasıl gerçekleştireceğinizi ve API’nizin güvenliğini nasıl sağlayacağınızı göreceksiniz. Ayrıca, fatihsoysal.com sitesinden daha fazla Django REST Framework içeriği bulabilirsiniz.

Proje Kurulumu

Öncelikle, bir Django projesi oluşturup gerekli paketleri yüklememiz gerekiyor. Bunun için aşağıdaki komutları kullanabilirsiniz:


django-admin startproject student_management
cd student_management
python manage.py startapp students
pip install djangorestframework

Ardından, settings.py dosyasına rest_framework uygulamasını ekleyin. Bu adım, REST Framework’ü projenizde kullanabilmeniz için gereklidir. Unutmayın ki, bu işlem doğru bir şekilde yapılmalıdır, aksi halde sistem çalışmayabilir.

Model Tanımlama

Öğrenci bilgilerini saklamak için bir model tanımlayalım. Bu model, öğrencinin adını, soyadını ve öğrenci numarasını içerecektir. students/models.py dosyasına aşağıdaki kodu ekleyin:


from django.db import models

class Student(models.Model):
    first_name = models.CharField(max_length=100)
    last_name = models.CharField(max_length=100)
    student_id = models.CharField(max_length=10, unique=True)

    def __str__(self):
        return f"{self.first_name} {self.last_name}"

Bu model tanımlandıktan sonra, veritabanı göçlerini uygulamanız gerekmektedir. Aşağıdaki komutu kullanarak bunu gerçekleştirebilirsiniz:


python manage.py makemigrations
python manage.py migrate

Fonksiyon Tabanlı Görünümler

Şimdi, öğrenciler için CRUD işlemlerini gerçekleştirecek fonksiyon tabanlı görünümler oluşturalım. students/views.py dosyasına aşağıdaki kodu ekleyin:


from rest_framework.decorators import api_view
from rest_framework.response import Response
from .models import Student
from .serializers import StudentSerializer # Daha sonra tanımlayacağız

@api_view(['GET'])
def student_list(request):
    students = Student.objects.all()
    serializer = StudentSerializer(students, many=True)
    return Response(serializer.data)

@api_view(['GET', 'POST'])
def student_detail(request, pk):
    try:
        student = Student.objects.get(pk=pk)
    except Student.DoesNotExist:
        return Response(status=404)

    if request.method == 'GET':
        serializer = StudentSerializer(student)
        return Response(serializer.data)
    elif request.method == 'POST':
        serializer = StudentSerializer(student, data=request.data)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data)
        return Response(serializer.errors, status=400)

# ... Diğer CRUD işlemleri için benzer fonksiyonlar eklenebilir ...

Bu kodda, api_view decorator’ü ile fonksiyonlarımızı API görünümleri olarak tanımlıyoruz. StudentSerializer ise daha sonra tanımlayacağımız ve model verilerini JSON formatına dönüştürecek bir serilayzır.

Serializer Tanımlama

Model verilerini JSON formatına dönüştürmek için bir serializer tanımlamamız gerekmektedir. students/serializers.py dosyasına aşağıdaki kodu ekleyin:


from rest_framework import serializers
from .models import Student

class StudentSerializer(serializers.ModelSerializer):
    class Meta:
        model = Student
        fields = '__all__'

Bu serializer, tüm model alanlarını içerir. İhtiyaçlarınıza göre alanları özelleştirebilirsiniz. Bu oldukça basit bir örnektir ve daha karmaşık senaryolar için özelleştirmeler gerekebilir. Örneğin, doğrulama eklemek veya farklı alanları göstermek isteyebilirsiniz.

URL Routing

Son olarak, URL’leri görünümlere bağlamamız gerekiyor. students/urls.py dosyasına aşağıdaki kodu ekleyin:


from django.urls import path
from . import views

urlpatterns = [
    path('students/', views.student_list),
    path('students//', views.student_detail),
]

Ve bu URL’leri ana urls.py dosyasına dahil edin. Bu işlemler sonrasında, API’nizi test edebilirsiniz.

API Test Etme

API’nizi test etmek için Postman veya curl gibi araçları kullanabilirsiniz. Örneğin, tüm öğrencileri listelemek için http://localhost:8000/students/ adresine GET isteği gönderebilirsiniz. Bu, Django REST Framework’ün sağladığı kolaylıklar sayesinde gerçekleşir. Unutmayın, hata ayıklama süreci önemlidir ve sorunları hızlı bir şekilde çözmenize yardımcı olabilir.

Bu makale, Django REST Framework ile fonksiyon tabanlı görünümler kullanarak basit bir öğrenci yönetim sistemi API’si oluşturmayı kapsar. Daha gelişmiş özellikler eklemek için, doğrulama, yetkilendirme ve daha karmaşık serializer’lar kullanmanız gerekebilir. Daha fazla bilgi için, Django REST Framework resmi dokümanlarını inceleyebilirsiniz. Ayrıca, bu rehberde kullanılan yöntemler, bu İngilizce makaleden esinlenilmiştir.

Umarım bu rehber size yardımcı olmuştur! fatihsoysal.com adresinden daha fazla Django içeriği bulabilirsiniz.

#Etiketler: Django, REST Framework, API, öğrenci yönetim sistemi, fonksiyon tabanlı görünümler, Python, tutorial, rehber, CRUD, serializer, model, views, urls

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Gönder

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.
Mobil sürümden çık