Django SqlServer配置不正确 - settings.DATABASES

时间:2012-12-10 09:17:26

标签: python sql-server django apache pyodbc

早些时候,我的pyodbc模块有一个problem,它没有在我的Windows机器上运行的apache服务器上运行我的应用程序。我发现使用this hint解决了让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给我同样的错误配置错误

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

对此有任何暗示或提示非常高兴,我一直试图让这个项目启动并运行一段时间。

非常感谢

2 个答案:

答案 0 :(得分:1)

如果您使用的是内置后端,则应指定数据库引擎,如下所示:

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

如果您不使用内置后端,则应在mypackage.backends.whatever设置中指定完全限定的路径(即ENGINE)。有关在django documentation here中给出的定义数据库后端的信息。

更新:
您可以尝试使用django-mssql将sql-server与django一起使用,并且可以使用明文档here in readthedocs

答案 1 :(得分: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 ')。单击Next,Next和Finish。

我将数据库连接更改回原始代码

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

感谢所有帮助我解决这个问题的人,并希望这对那里的人有所帮助。

干杯