Skip to main content

Django Uygulamasını PyMongo ile MongoDB Veritabanına Bağlama 🔗

Bu rehberde, Django projenizi PyMongo kullanarak MongoDB'ye bağlayacak, bağlantıyı güvenli bir şekilde yapılandıracak ve MongoDB üzerinde veri işlemlerini gerçekleştireceksiniz.


1. Yönetilen MongoDB Kümesi Hazırlığı (Rabisu Bulut Örneği)

1.1 MongoDB Kümesi Oluşturma

Rabisu Bulut Yönetim Paneli'ne giriş yaparak yeni bir Yönetilen MongoDB Kümesi oluşturun. Veri kümenizi ve bağlantı parametrelerini belirleyin.

1.2 Güvenilir Kaynakları Tanımlama

MongoDB güvenliği için uygulamanızın çalıştığı sunucunun IP adresini, yönetim panelinde "Güvenilir Kaynaklar" kısmına ekleyin. Bu, yalnızca belirttiğiniz IP'lerden gelen bağlantıları kabul eder.

1.3 Bağlantı Bilgilerini Saklama

MongoDB kümesi oluşturulduktan sonra bağlantı dizesini (Connection String) ve CA Sertifikasını indirin. Bu bilgileri güvenli bir yerde saklayın.

1.4 Admin Parolasını Sıfırlama

Kullanıcılar sekmesinden admin parolasını sıfırlayarak güvenliği artırın.


2. Django Projesi ve PyMongo Kurulumu

2.1 Django Projesini Başlatma

Yeni bir proje dizini oluşturun ve Django'yu başlatın:

mkdir ~/rabisu-mongo-test
cd ~/rabisu-mongo-test
django-admin startproject DjangoNoSQL

2.2 Django Uygulamasını Başlatma

Uygulama dizini oluşturun ve rabisuapp adıyla uygulamayı başlatın:


cd DjangoNoSQL
python3 manage.py startapp rabisuapp

2.3 Gerekli Kütüphaneleri Kurma

MongoDB bağlantısı için PyMongo ve DNS çözümleyici Dnspython kütüphanelerini yükleyin:


pip3 install pymongo dnspython

3. Django Ayarlarının Yapılandırılması

3.1 settings.py Dosyasını Düzenleme

Django'nun varsayılan veritabanını devre dışı bırakın ve MongoDB ile bağlantıyı yapılandırın.


nano DjangoNoSQL/settings.py

DATABASES bölümünü şu şekilde yoruma alarak devre dışı bırakın:


DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}

Uygulamanızı INSTALLED_APPS listesine ekleyin:


INSTALLED_APPS = [
'rabisuapp',
'django.contrib.admin',
# ... diğer bileşenler
]

4. PyMongo Bağlantısını ve Veri İşlemini Kurma

4.1 URL Yapılandırmasını Tanımlama

urls.py dosyasını açın ve Django projenizin ana yolunu (/) rabisuapp uygulamasına yönlendirin.


from django.urls import path, include

urlpatterns = [
path('', include('rabisuapp.urls')), # Rabisu uygulamasının URL'lerini dahil eder
path('admin/', admin.site.urls),
]

4.2 Uygulama URL'lerini Tanımlama

rabisuapp/urls.py dosyasını oluşturun ve aşağıdaki URL yönlendirmesini ekleyin:


from django.urls import path
from . import views

urlpatterns = [
path('', views.index, name='index'), # Ana sayfa görünümünü index'e yönlendirir
]

4.3 CRUD İşlemi İçin PyMongo Kullanma

MongoDB ile bağlantıyı kurmak ve basit veri işlemleri yapmak için views.py dosyasını açın.


from django.http import HttpResponse
import pymongo # PyMongo kütüphanesini içeri aktarır
import os # CA sertifikası yolu için gerekli olabilir

def index(request):
# Bağlantı dizesi ve sertifika yolunuzu kendi bilgilerinizle değiştirin
CONN_STR = 'mongodb+srv://admin_user:[email protected]/admin?authSource=admin&tls=true&tlsCAFile=/home/rabisu/mongodb-ca.crt'

try:
# MongoDB istemcisini başlatır
client = pymongo.MongoClient(CONN_STR)
dbname = client['rabisu_db'] # Veritabanı adını tanımlar
collection = dbname['rabisu_mascot'] # Koleksiyon adını tanımlar

# Yeni bir belge (document) oluşturur ve ekler
yeni_belge = {"ad": "Rabisu", "tip": "Bulut"}
collection.insert_one(yeni_belge)

# Veriyi çeker ve terminalde yazdırır
cekilen_veriler = collection.find({})
sonuc = [f"Belge eklendi ve çekildi: {r['ad']} - {r['tip']}" for r in cekilen_veriler]

return HttpResponse(f"<h1>MongoDB Bağlantısı Başarılı!</h1><p>{'<br>'.join(sonuc)}</p>")

except Exception as e:
return HttpResponse(f"<h1>Bağlantı Hatası!</h1><p>{e}</p>")


5. Uygulamayı Test Etme

5.1 Sunucuyu Başlatma

Sunucuyu başlatın ve bağlantının başarılı olduğunu doğrulayın.


python3 manage.py runserver

5.2 Sonucu Görüntüleme

Tarayıcınızda http://127.0.0.1:8000 adresine gidin. Ekranda "MongoDB Bağlantısı Başarılı!" mesajını görmelisiniz.


Sıkça Sorulan Sorular (SSS)

  1. Neden Django ORM yerine PyMongo kullanıyoruz?

Django ORM, ilişkisel veritabanları için tasarlanmıştır. MongoDB gibi NoSQL veritabanları için PyMongo kullanmak, veritabanının esnek yapısını daha verimli kullanmanızı sağlar.

  1. client = pymongo.MongoClient() komutu ne işe yarar?

Bu komut, MongoDB veritabanına bağlanmanıza olanak tanır. Bağlantı dizesi, MongoDB kümesine ait tüm gerekli bilgileri içerir.

  1. CA Sertifikası ne işe yarar?

CA Sertifikası, güvenli SSL/TLS bağlantıları kurarak MongoDB veritabanınızla güvenli iletişim sağlar.

  1. PyMongo'yu neden kullanmalıyım?

PyMongo, MongoDB ile Python uygulamaları arasında kolayca veri alışverişi yapabilmenizi sağlar ve MongoDB ile ilgili tüm CRUD işlemleri için araçlar sunar.


Sonuç

Bu rehberde, Django uygulamanızı MongoDB'ye bağlamak için PyMongo'yu nasıl kullanacağınızı öğrendiniz. MongoDB ile veri ekleme, sorgulama ve bağlantı işlemleri hakkında bilgi edinerek, veritabanı yönetimini daha verimli hale getirebilirsiniz. Bu kurulumu Rabisu Bulut'un güçlü ve güvenilir Sanal Sunucu Örnekleri üzerinde hemen deneyebilirsiniz.