2012-12-10 47 views
1

此前我有一個problem與我的pyodbc模塊,它沒有運行我的應用程序在我的Windows機器上運行的Apache服務器上。我發現解決了我使用this hint讓django項目在apache上運行的問題。Django SqlServer配置不當 - settings.DATABASES

但現在我面臨着一個不同的問題。 django應用程序在apache上運行,但在頁面上引發此錯誤。

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

只要是明確的,通過Django的內置服務器部署時,該項目完美運行。這是我的數據庫連接看起來像在settings.py

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

UPDATE:

我更新根據Django MSSQL Documentation我的代碼,遇到了一些問題,並得到了它通過更新我的pywin32工作,這再次工作Django的內置服務器不是在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

任何提示或提示,這是高度appriciated,我一直試圖獲得這個項目已經運行了很長一段時間了。

非常感謝

+0

Apache是​​否可以在同一臺機器上運行並訪問相同的Python包? –

+0

是的,以前我創建了演示django應用程序,它說:「它的工作! 祝賀你的第一個Django驅動的頁面。」並且他們使用Apache完美運行。 – shabeer90

+0

在這些情況下你使用的是不同的數據庫引擎嗎? –

回答

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, 
     }, 
    }, 
} 

感謝所有誰幫我解決這個問題,並希望這是有幫助的人在那裏。

乾杯

1

如果您使用的是內置的後端,應指定數據庫引擎,如下所示:

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

如果你不使用內置的後端,應指定一個ENGINE設置中完全合格的路徑(即mypackage.backends.whatever)。有關在django documentation here中給出的定義數據庫後端的信息。

更新:
您可以嘗試使用django-mssql使用SQL服務器使用Django和清晰的文檔可here in readthedocs

+0

我正在使用「sql-server」後端不是mysql。使用'ENGINE':'sql_server.pyodbc',在我用djangos的內置服務器運行項目時工作。 – shabeer90

+0

@ shabeer90如果您不使用內置後端,則應指定要使用的包的確切位置。 – arulmr

+0

你有什麼暗示可以做 – shabeer90

相關問題