Я использую Sql Server 2008, который связан с базой данных Oracle 9i, я делаю это соединение по особым причинам, а также потому, что мои права на Oracle находятся в режиме только для чтения, поэтому Django может создавать эти таблицы, я использую SqlСервер, должным образом, это единственное решение, которое я смог найти, теперь, когда Python подключается к базе, я запрашиваю Oracle с Sql Server с помощью SQL-запроса, например:
import pyodbc con = pyodbc.connect("DRIVER={SQL SERVER};server=DJANGO-PC\SQLEXPRESS;database=MaBase;uid=Oracle;pwd=MonPasse") cur = con.cursor() cur.execute("Select Champ1, Champ2, Champ3, Champ4 From OpenQuery(Oracle,'Select * From Table1 Where Champ1=''%s'' \
Order By Champ1, Champ2')" %'une Valeur aux choix') for row in cur:
print(row.Champ1+" "+ row.Champ2+" "+ row.Chmap3+" "+ row.Champ4+" "+row.Champ5) cur.close() con.close()
Этот код работает очень хорошо.
Я пытаюсь сделать это с Django, но я не могу объявить свои таблицы Oracle на моем models.py, я использовал InspectDB, но он не работает.Глядя в сети, я нахожу код для вставки в view.py, поэтому это хорошая практика, или есть другой способ сделать это, вот код поиска:
from django.shortcuts import render_to_response import pyodbc def adherentsList(request):
db = pyodbc.connect('DRIVER={SQL SERVER};server=DJANGO-PC\SQLEXPRESS;database=MaBase;uid=Oracle;pwd=MonPasse')
cursor = db.cursor()
cursor.execute("Select Champ1, Champ2, Champ3, Champ4 From OpenQuery(Oracle,'Select * From Table1 Where Champ1=''%s'' \
Order By Champ1, Champ2')" %'une Valeur aux choix ')")
names = [row for row in cursor.fetchall()]
db.close()
return render_to_response('adherent.html', {'names': names})
Python версия: 3.7 DjangoВерсия: 2. IDE: PyCharm, Визуальный код.Спасибо за вашу помощь, и я надеюсь, что будет ясно в моей просьбе о помощи.