Django kullanarak bir bir web uygulaması yapıyorum.
proje de kullanıcı işlemleri ve oluşturduğum model kayıtları için postgresql kullanacağım.
Ayrıca logo mssql programının aynı ağda bulunan veritabanına ulaşıp veri çekmem gerekiyor.
istediğim yerlerde aşağıdaki kodu yazarak verileri alabiliyorum. (kodun ilgisiz kısımlarını sildim)
import pyodbc
import pandas as pd
with pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER=00.0.0.000;DATABASE=***;UID=***;PWD=***;') as cnxn
sql = "SELECT [SütunAdı] FROM [TabloAdı] #burada farklı farklı sorgular olacak
df = pd.read_sql_query(sql, cnxn)
Ancak bu kodu ihtiyaç duyduğum her yere bu şekilde yazmak saçma görünüyor.
Bildiğiniz üzere settings.py dosyasında DATABASES isminde bir veri bulunuyor. ben mssql verilerini buraya kaydedip daha basit şekilde bu veriye ulaşabilir miyim?
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
},
'mssql_database': {
'ENGINE': 'sql_server.pyodbc',
'NAME': '***',
'USER': '***',
'PASSWORD': '***',
'HOST': '00.0.0.000',
'PORT': '1443',
OPTIONS': {
'driver': 'ODBC Driver 17 for SQL Server',
},
}
}
Kullandığım yere from settings import DATABASES
gibi bir şey yapıp aynı şekilde her yere tek tek connection kodu yazmak da pek akıl karı görünmüyor. (denemedim bunu)
Databases routers diye bir konu gördüm; biraz inceledim ancak anladığım kadarıyla farklı uygulamalar (app ler) farklı veritabanlarını kullansın istiyorsak kullanabileceğimiz bir yöntem gibi benim işime yarar mı bilemedim. Konuyu tam anlamamış da olabilirim. “senin ilacın bu” diyorsanız bunu da belirtebilirsiniz.
Tavsiyelerinizi bekliyorum. Şimdiden teşekkür ederim.