Создание нового веб-приложения Django с MS Sql Server в качестве внутренней базы данных
<<<0>>>В последнее время, работая с несколькими приложениями powerapp, мы заметили, что приложения становятся медленнее день ото дня. Основная причина такой медлительности - увеличение количества валидаций данных на каждой странице и рост объема данных. Мы пришли к решению создать веб-приложение Django, чтобы заменить существующие приложения poweapp. Во время исследования я узнал, что Django не имеет поддержки Ms Sql Server из коробки. Также я не могу создать новую БД на своем сервере, так как перенос таблиц из старой БД в новую потребует много согласований. Есть ли способ, которым я могу использовать существующую БД
Я знаю, что мы можем использовать django-mssql-backend и несколько других сторонних пакетов mssql. Но смогу ли я запускать процедуры хранителя и выполнять другие sql-команды, а также получать данные с помощью операторов select
Да, вы определенно можете использовать существующую базу данных MS SQL Server с помощью Django. Вам необходимо использовать серверную часть базы данных сторонних производителей, такую как django-mssql-backend
или mssql-django
, поскольку Django не предоставляет встроенной поддержки для MS SQL Server.
Вы можете вызвать хранимую процедуру следующим образом:
from django.db import connection
def call_stored_procedure(param1, param2):
with connection.cursor() as cursor:
cursor.callproc('YourStoredProcedureName', [param1, param2])
result = cursor.fetchall()
return result
А также вы можете запускать необработанные SQL-запросы следующим образом:
def get_data_from_sql():
with connection.cursor() as cursor:
cursor.execute("SELECT * FROM YourTable WHERE condition = %s", [your_value])
rows = cursor.fetchall()
return rows
Кроме того, вы можете использовать Django ORM с MS SQL Server.
Я надеюсь, что вам повезет!
Да, вы можете использовать существующую базу данных SQL Server с Django, используя сторонний серверный интерфейс, например django-mssql-backend
или mssql-django
. Эти серверные части поддерживают хранимые процедуры, необработанные SQL-запросы и позволяют использовать существующую базу данных без переноса схемы, благодаря inspectdb
Django. и пользовательские методы выполнения SQL.
pip install django-mssql-backend
Настройте DATABASES
в settings.py
DATABASES = {
'default': {
'ENGINE': 'mssql',
'NAME': 'your_db_name',
'USER': 'your_user',
'PASSWORD': 'your_password',
'HOST': 'your_sql_server_host',
'PORT': '1433',
'OPTIONS': {
'driver': 'ODBC Driver 17 for SQL Server',
},
}
}
Используйте inspectdb
для обратного проектирования вашей схемы
python manage.py inspectdb > app_name/models.py
ВЫБЕРИТЕ запросы:
from django.db import connection
def custom_query():
with connection.cursor() as cursor:
cursor.execute("SELECT * FROM your_table WHERE condition = %s", ['value'])
rows = cursor.fetchall()
return rows