5

djangoをsqlserverに接続しようとしています。私はすでにpythonodbcとdjango-odbcをインストールしました。

私のデータデータベース構成(settings.py)

DATABASES = {
    'default': {
        'ENGINE': 'sql_server.pyodbc', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': 'EDAS',                      # Or path to database file if using sqlite3.
        'USER': 'sa',                      # Not used with sqlite3.
        'PASSWORD': '1324',                  # Not used with sqlite3.
        'HOST': 'DBIO01-HP',                      # Set to empty string for localhost. Not used with sqlite3.
        'PORT': '1433'                      # Set to empty string for default. Not used with sqlite3.
    }
}

ただし、サーバーを実行しようとすると、次のエラーが発生します。

C:\ edas> python manage.py runserver

Validating models...

Unhandled exception in thread started by <bound method Command.inner_run of <django.contrib.staticfiles.management.comma
nds.runserver.Command object at 0x02EC2E70>>
Traceback (most recent call last):
  File "C:\Python27\lib\site-packages\django\core\management\commands\runserver.py", line 91, in inner_run
    self.validate(display_num_errors=True)
  File "C:\Python27\lib\site-packages\django\core\management\base.py", line 266, in validate
    num_errors = get_validation_errors(s, app)
  File "C:\Python27\lib\site-packages\django\core\management\validation.py", line 23, in get_validation_errors
    from django.db import models, connection
  File "C:\Python27\lib\site-packages\django\db\__init__.py", line 40, in <module>
    backend = load_backend(connection.settings_dict['ENGINE'])
  File "C:\Python27\lib\site-packages\django\db\__init__.py", line 34, in __getattr__
    return getattr(connections[DEFAULT_DB_ALIAS], item)
  File "C:\Python27\lib\site-packages\django\db\utils.py", line 92, in __getitem__
    backend = load_backend(db['ENGINE'])
  File "C:\Python27\lib\site-packages\django\db\utils.py", line 24, in load_backend
    return import_module('.base', backend_name)
  File "C:\Python27\lib\site-packages\django\utils\importlib.py", line 35, in import_module
    __import__(name)
  File "C:\Python27\lib\site-packages\sql_server\pyodbc\base.py", line 56, in <module>
    elif 'collation' in settings.DATABASE_OPTIONS:
  File "C:\Python27\lib\site-packages\django\utils\functional.py", line 185, in inner
    return func(self._wrapped, *args)
AttributeError: 'Settings' object has no attribute 'DATABASE_OPTIONS'

誰かがそれを修正する方法を理解するのを手伝ってもらえますか?

4

7 に答える 7

3

Michael Baltaksが言及したブランチに切り替えることで、もう少し進んだ。次のコマンドを使用して、互換性のない古いバージョンをアンインストールしました。

$ pip uninstall sql-server.pyodbc

次に、git-hubバージョンをインストールします。

$ pip install https://github.com/avidal/django-pyodbc/archive/django-1.4.zip

しかし、これは私を完全に働かせることはできませんでした。次のエラーが発生します。

pyodbc.Error:( '00000'、'[00000] [iODBC] [Driver Manager] dlopen({FreeTDS}、6):イメージが見つかりません(0)(SQLDriverConnect)')

于 2012-11-09T16:31:31.793 に答える
1

誰かがdjango1.4のdjango-pyodbcをここで入手したようですhttps://github.com/avidal/django-pyodbc

于 2012-07-20T09:36:17.807 に答える
0

このフォークを見てください:https ://github.com/avidal/django-pyodbc

Django1.4と互換性があります

于 2012-11-12T23:15:14.273 に答える
0

django-odbcはデッドプロジェクトであり、バージョン1.3以降、最新のDjangoとの互換性がなくなったようです。

C:\ Python27 \ lib \ site-packages \ sql_server \ pyodbc \ base.py "の56行目を編集して修正することで修正できる可能性がありますが、修正すると、settings.DATABASES['default'].get('options')さらに後の非互換性が明らかになることは間違いありません。

于 2012-06-01T13:45:41.250 に答える
0

ブロ、

これは今2歳です...あなたが答えを持っていることを願っています。その価値について:宣言しているデータベースオブジェクトには、「オプション」パラメータが必要です。以下を参照してください。

#Database connector
DATABASES = {
    'default': {
        'ENGINE': '',
        'NAME': '',
        'USER': '',
        'PASSWORD': '',
        'HOST': '',
        'PORT': '',
        'OPTIONS': {
            'driver': '',
            'MARS_Connection': True,
        },
    }
}

于 2014-10-12T07:00:23.003 に答える
0

これは私にとってはうまくいきました、特にdriver_supports_utf8行:

'dbconn': {
            'CREATE_DB': False,
            'CREATE_USER': False,
            'CREATE_TBLSPACE': False,
            'ENGINE': 'django_pyodbc',
            'NAME': 'DBNAME',
            'USER': 'user',
            'PASSWORD': 'password',
            'HOST': 'HOST',
            'OPTIONS': {
                'host_is_server': True,
                'driver_supports_utf8': True,
            }
        }
于 2017-03-30T13:55:53.757 に答える
0

でSQLサーバーフォルダーを削除しLib\site-packages\て、pip install django-pyodbc-azure pipinstallsql_server.pyodbcを実行します。

于 2020-04-27T20:07:21.527 に答える