Как подключить Django к докеру SQL Server в Mac OS?

Я не могу подключить Django к SQL Server в Mac OS. Как подключить Django к докеру SQL Server в Mac OS?

Пип-установка

pip установить mssql-django

Параметр:

DATABASES = {
    'default': {
        'ENGINE': 'sql_server.pyodbc',
        'NAME': 'test1',
        'HOST': 'localhost',
        'PORT': 1433,
        'USER': 'SA',
        'PASSWORD': 'xxxxx',
        'OPTIONS': {
            'driver': 'ODBC Driver 13 for SQL Server',
        },
    }
}

Запустите python3 Manage.py runserver, он отобразит сообщение об ошибке, как показано ниже. есть ли способ исправить эту ошибку?

    ModuleNotFoundError: No module named 'sql_server'
    
    The above exception was the direct cause of the following exception:
    
    Traceback (most recent call last):
      File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/threading.py", line 1073, in _bootstrap_inner
        self.run()
      File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/threading.py", line 1010, in run
        self._target(*self._args, **self._kwargs)
      File "/Users/imac/Desktop/Project/Test/myenv/lib/python3.12/site-packages/django/utils/autoreload.py", line 64, in wrapper
        fn(*args, **kwargs)
      File "/Users/imac/Desktop/Project/Test/myenv/lib/python3.12/site-packages/django/core/management/commands/runserver.py", line 125, in inner_run
        autoreload.raise_last_exception()
      File "/Users/imac/Desktop/Project/Test/myenv/lib/python3.12/site-packages/django/utils/autoreload.py", line 87, in raise_last_exception
        raise _exception[1]
      File "/Users/imac/Desktop/Project/Test/myenv/lib/python3.12/site-packages/django/core/management/__init__.py", line 394, in execute
        autoreload.check_errors(django.setup)()
      File "/Users/imac/Desktop/Project/Test/myenv/lib/python3.12/site-packages/django/utils/autoreload.py", line 64, in wrapper
        fn(*args, **kwargs)
      File "/Users/imac/Desktop/Project/Test/myenv/lib/python3.12/site-packages/django/__init__.py", line 24, in setup
        apps.populate(settings.INSTALLED_APPS)
"/Users/imac/Desktop/Project/Test/myenv/lib/python3.12/site-packages/django/contrib/auth/models.py", line 3, in <module>
        from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager
      File "/Users/imac/Desktop/Project/Test/myenv/lib/python3.12/site-packages/django/contrib/auth/base_user.py", line 59, in <module>
        class AbstractBaseUser(models.Model):
      File "/Users/imac/Desktop/Project/Test/myenv/lib/python3.12/site-packages/django/db/models/base.py", line 143, in __new__
        new_class.add_to_class("_meta", Options(meta, app_label))
      File "/Users/imac/Desktop/Project/Test/myenv/lib/python3.12/site-packages/django/db/models/base.py", line 371, in add_to_class
        value.contribute_to_class(cls, name)
      File "/Users/imac/Desktop/Project/Test/myenv/lib/python3.12/site-packages/django/db/models/options.py", line 243, in contribute_to_class
        self.db_table, connection.ops.max_name_length()
                       ^^^^^^^^^^^^^^
      File "/Users/imac/Desktop/Project/Test/myenv/lib/python3.12/site-packages/django/utils/connection.py", line 15, in __getattr__
        return getattr(self._connections[self._alias], item)
                       ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
      File "/Users/imac/Desktop/Project/Test/myenv/lib/python3.12/site-packages/django/utils/connection.py", line 62, in __getitem__
        conn = self.create_connection(alias)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/Users/imac/Desktop/Project/Test/myenv/lib/python3.12/site-packages/django/db/utils.py", line 193, in create_connection
        backend = load_backend(db["ENGINE"])
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/Users/imac/Desktop/Project/Test/myenv/lib/python3.12/site-packages/django/db/utils.py", line 126, in load_backend
        raise ImproperlyConfigured(
    django.core.exceptions.ImproperlyConfigured: 'sql_server.pyodbc' isn't an available database backend or couldn't be imported. Check the above exception. To use one of the built-in backends, use 'django.db.backends.XXX', where XXX is one of:
        'mysql', 'oracle', 'postgresql', 'sqlite3'

Ваша ошибка, похоже, не связана с какой-либо проблемой подключения к SQL Server. Похоже, это какая-то ошибка, связанная с моделью auth.Group и переводами. Пожалуйста, отредактируйте и предоставьте следующую информацию: 1) Настройки, связанные с приложением аутентификации и любой пользовательской моделью пользователя, если она у вас есть. 2) Настройки, связанные с интернационализацией/переводом. 3) Ваша INSTALLED_APPS установка.

Abdul Aziz Barkat 02.09.2024 06:59

На самом деле, какая у вас версия Django?

Abdul Aziz Barkat 02.09.2024 07:03

Кстати... почему ты используешь такую ​​старую версию, ODBC Driver 13 for SQL Server? Текущие выпуски — ODBC Driver 17 for SQL Server и ODBC Driver 18 for SQL Server. У вас может возникнуть меньше трудностей, если вы использовали Visual Studio Code с контейнерами разработки, поскольку контейнеры разработки сами по себе являются контейнерами Docker и, вероятно, будут очень похожи на среды, в которых вы развертываете свои приложения.

AlwaysLearning 02.09.2024 08:23

ModuleNotFoundError: нет модуля с именем «sql_server». Вышеупомянутое исключение было непосредственной причиной следующего исключения: Traceback (последний вызов): Файл «/Library/Frameworks/Python.framework/Versions/3.12/lib/pyth‌​on3.12 /threading.py"‌​, строка 1073, в _bootstrap_inner

Sma Ham 02.09.2024 11:26

Джанго 5.......

Sma Ham 03.09.2024 03:54
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
5
70
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Проблема в установленной библиотеке. Версия Django <3 и конфигурация 'ENGINE': 'sql_server.pyodbc' требуют библиотеки django-mssql-backend. Однако при обновлении до современных версий Django (>3) используйте библиотеку mssql-django с 'ENGINE': 'mssql' в качестве конфигурации базы данных и "driver": "ODBC Driver 17 for SQL Server"

решение: pip install django-mssql-backend

также убедитесь, что ODBC Driver 17 for SQL Server установлен. на Mac, беги brew install msodbcsql17 mssql-tools

Django > 3 django.db.utils.Error: ('01000', "[01000] [unixODBC][Диспетчер драйверов]Невозможно открыть библиотеку 'ODBC Driver 13 для SQL Server': файл не найден (0) (SQLDriverConnect) ")

Sma Ham 03.09.2024 03:53

это в Mac OS с Django 5

Sma Ham 03.09.2024 04:33

для django 5 используйте библиотеку mssql-django с «ENGINE»: «mssql» в качестве конфигурации базы данных и «драйвером»: «ODBC Driver 17 для SQL Server»

Gathiira M. 03.09.2024 10:16

ошибка: self.connection = self.get_new_connection(conn_params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Файл " /Users/imac/Desktop/Project/Test/myenv/lib/python3.12/site-‌​packages/mssql/base.‌​py", строка 368, в get_new_connection conn = Database.connect(connstr, **args ) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ django.db.utils.Error: ('01000', "[01000 ] [unixODBC][Диспетчер драйверов]Невозможно открыть библиотеку «Драйвер ODBC 17 для SQL Server»: файл не найден (0) (SQLDriverConnect)")

Sma Ham 03.09.2024 10:38

пожалуйста, проверьте, как установить драйверы odbc на Mac, на сайте Learn.microsoft.com/en-us/sql/connect/odbc/linux-mac/… или просто запустите brew install msodbcsql17 mssql-tools

Gathiira M. 03.09.2024 19:20

Brew install msodbcsql17 mssql-tools Предупреждение: формула с именем «msodbcsql17» недоступна. ==> Поиск формул и бочек с одинаковыми именами... Ошибка: для msodbcsql17 не найдены формулы или бочки.

Sma Ham 04.09.2024 03:36

заварить кран microsoft/mssql-release github.com/Microsoft/homebrew-mssql-release заварить обновление

Sma Ham 04.09.2024 04:04

Файл "/Users/imac/Desktop/Project/Test/myenv/lib/python3.12/site-‌​packages/mssql/base.‌​py", строка 368, в get_new_connection conn = Database.connect(connstr, * *args) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ django.db.utils.OperationalError: ('HYT00', ' [HYT00] [Microsoft][Драйвер ODBC 17 для SQL Server]Тайм-аут входа истек (0) (SQLDriverConnect)')

Sma Ham 04.09.2024 04:27

используйте ip(127.0.0.1) вместо localhost

Sma Ham 04.09.2024 04:31

Другие вопросы по теме