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 文档更新了我的代码,遇到了一些问题并通过更新我的 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 文档中给出了有关定义数据库后端的信息。

更新:
您可以尝试使用django-mssql将 sql-server 与 django 一起使用,并且在 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 回答