1

以前、pyodbc モジュールに問題があり、Windows マシンで実行されている Apache サーバーでアプリケーションを実行できませんでした。このヒントを使用して、django プロジェクトを apache で実行するという私の問題を解決することがわかりました。

しかし今、私は少し別の問題に直面しています。django アプリケーションは apache で実行されますが、ページでこのエラーがスローされます。

ImproperlyConfigured at /auth/login/
settings.DATABASES is improperly configured. Please supply the ENGINE value. Check settings documentation for more details.

明確にするために、このプロジェクトは、djangos 組み込みサーバーを介して展開すると完全に実行されます。これは、私のデータベース接続がsettings.pyでどのように見えるかです

DATABASES = {
    'default': {
        'ENGINE': 'sql_server.pyodbc',
        'NAME': 'myDbName',
        'USER': 'myusername',    
        'PASSWORD': '',
        'HOST': '',
        'OPTIONS' : {
            'driver': 'SQL Native Client',
            'dsn': 'test',
            'MARS_Connection': True,
        },
    },    
}

アップデート:

Django MSSQL Documentationに従ってコードを更新し、いくつかの問題に遭遇し、pywin32 を更新することで動作するようになりました。また、これは djangos 組み込みサーバーで動作し、APACHE では同じ ImproperlyConfigured エラーが発生しませんでした

DATABASES = {
    'default': {
        'NAME': 'myDbName',
        'ENGINE': 'sqlserver_ado',
        'HOST': 'MYHOST',
        'USER': 'myusername',
        'PASSWORD': 'mypassword',
        'OPTIONS' : {
            'provider': 'SQLNCLI11', 
            'use_mars': False,
        },
    }
}

私のシステム - Windows 7、Apache 2.2、python 2.7、django 1.4.2、pyodbc-3.0.6.win32-py2.7

これに関するヒントやヒントは非常に高く評価されています。私はかなり前からこのプロジェクトを立ち上げて実行しようとしてきました。

どうもありがとう

4

2 に答える 2

1

組み込みのバックエンドを使用している場合は、データベース エンジンを次のように指定する必要があります。

'ENGINE':'django.db.backends.mysql'

組み込みのバックエンドを使用していない場合はmypackage.backends.whatever、設定で完全修飾パス (つまり )を指定する必要がありますENGINE。データベース バックエンドの定義に関する情報は、django のドキュメント hereに記載されています。

更新: django で sql-server を使用するためにdjango-mssql
を使用して みることができます。明確なドキュメントはreadthedocs にあります。

于 2012-12-10T09:28:14.340 に答える
0

私の質問への答えは少し奇妙かもしれませんが、これが私のマシンで動作させる方法です。

私が抱えていた主な問題は、DSN が django プロジェクトに接続されていなかったことです。以下で説明する手順で、それが機能する上で全体的な違いを生んだ最後の手順です。以前はDSN を作成するときに「統合 Windows 認証を使用する」を選択していましたが、djangos 組み込みサーバーを使用して実行していたときに驚くほど機能しました。

  • Windows 7 でアプリ ODBC データ ソース アドミニストレーターを開きます ([スタート] メニューから ODBC を検索します)。
  • [システム DSN] タブで、[追加] ボタンをクリックします。
  • SQL Server Native Client 10.0 を選択します
  • DSN your_dsn_name、説明 (オプション)、および接続する SQL Server を入力し、[次へ] をクリックします。
  • 「ユーザーが入力したログイン ID とパスワードを使用した SQL Server 認証を使用する」オプションを選択します。
  • ログイン ID (' your_username ') とパスワード (' your_password ') を入力します。[次へ]、[次へ]、[終了] の順にクリックします。

そして、データベース接続を元のコードに戻しました

DATABASES = {
    'default': {
        'ENGINE': 'sql_server.pyodbc',
        'NAME': 'MaDaMa_App',
        'USER': 'your_username',
        'PASSWORD': 'your_password',
        'HOST': 'MYHOST',
        'OPTIONS' : {
            'driver': 'SQL Native Client',
            'dsn': 'your_dsn_name',
            'MARS_Connection': True,
        },
    },
 }

これを解決するのを手伝ってくれたすべての人に感謝します。これが誰かの役に立てば幸いです。

乾杯

于 2012-12-11T14:44:09.500 に答える