Python 使用django mssql连接到MS SQL Server时出现问题
我正在尝试使用django mssql连接到带有django 1.4.2的MS SQL Server 2008 R2以下是我的数据库设置:Python 使用django mssql连接到MS SQL Server时出现问题,python,django,sql-server-2008,django-mssql,Python,Django,Sql Server 2008,Django Mssql,我正在尝试使用django mssql连接到带有django 1.4.2的MS SQL Server 2008 R2以下是我的数据库设置: DATABASE_ENGINE = 'sqlserver_ado' DATABASE_NAME = 'dbtest' DATABASE_USER = 'App' DATABASE_PASSWORD = '*********' DATABASE_HOST = 'localhost' DATABASE_OPTIONS = {
DATABASE_ENGINE = 'sqlserver_ado'
DATABASE_NAME = 'dbtest'
DATABASE_USER = 'App'
DATABASE_PASSWORD = '*********'
DATABASE_HOST = 'localhost'
DATABASE_OPTIONS = {
'provider': 'SQLNCLI10',
'extra_params': 'DataTypeCompatibility=80;MARS Connection=True;',
}
DATABASES = {
'default': {
'ENGINE': DATABASE_ENGINE,
'NAME': DATABASE_NAME,
'USER': DATABASE_USER,
'PASSWORD': DATABASE_PASSWORD,
'HOST': DATABASE_HOST,
'OPTIONS' : DATABASE_OPTIONS,
},
}
这是我尝试syncdb时遇到的错误
Traceback (most recent call last):
File "C:\Python27\DataSatellite\manage.py", line 11, in <module>
execute_manager(settings)
File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line 459, in execute_manager
utility.execute()
File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line 382, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "C:\Python27\lib\site-packages\django\core\management\base.py", line 196, in run_from_argv
self.execute(*args, **options.__dict__)
File "C:\Python27\lib\site-packages\django\core\management\base.py", line 232, in execute
output = self.handle(*args, **options)
File "C:\Python27\lib\site-packages\django\core\management\base.py", line 371, in handle
return self.handle_noargs(**options)
File "C:\Python27\lib\site-packages\django\core\management\commands\syncdb.py", line 57, in handle_noargs
cursor = connection.cursor()
File "C:\Python27\lib\site-packages\django\db\backends\__init__.py", line 306, in cursor
cursor = self.make_debug_cursor(self._cursor())
File "C:\Python27\lib\site-packages\sqlserver_ado\base.py", line 193, in _cursor
self.__connect()
File "C:\Python27\lib\site-packages\sqlserver_ado\base.py", line 168, in __connect
use_transactions=self.use_transactions,
File "C:\Python27\lib\site-packages\sqlserver_ado\dbapi.py", line 151, in connect
raise OperationalError(e, "Error opening connection: " + connection_string)
sqlserver_ado.dbapi.OperationalError: (AttributeError("'module' object has no attribute 'VARIANT'",), 'Error opening connection: DATA SOURCE=localhost;Initial Catalog=dbtest;UID=App;PWD=*********;PROVIDER=SQLNCLI10;MARS Connection=True;DataTypeCompatibility=80;MARS Connection=True;')
Finished "C:\Python27\DataSatellite\manage.py syncdb" execution.
回溯(最近一次呼叫最后一次):
文件“C:\Python27\datasatelite\manage.py”,第11行,在
执行\u管理器(设置)
文件“C:\Python27\lib\site packages\django\core\management\\uuuu init\uuuuu.py”,第459行,在执行管理器中
utility.execute()
文件“C:\Python27\lib\site packages\django\core\management\\uuuu init\uuuuu.py”,第382行,在execute中
self.fetch_命令(子命令)。从_argv(self.argv)运行_
文件“C:\Python27\lib\site packages\django\core\management\base.py”,第196行,运行于\u argv
self.execute(*args,**选项._dict__;
文件“C:\Python27\lib\site packages\django\core\management\base.py”,第232行,在execute中
输出=self.handle(*args,**选项)
文件“C:\Python27\lib\site packages\django\core\management\base.py”,第371行,位于句柄中
返回self.handle\u noargs(**选项)
文件“C:\Python27\lib\site packages\django\core\management\commands\syncdb.py”,第57行,在handle\u noargs中
cursor=connection.cursor()
光标中第306行的文件“C:\Python27\lib\site packages\django\db\backends\\ uuuu init\uuuu.py”
cursor=self.make\u debug\u cursor(self.\u cursor())
文件“C:\Python27\lib\site packages\sqlserver\u ado\base.py”,第193行,在光标处
自我连接()
文件“C:\Python27\lib\site packages\sqlserver\u ado\base.py”,第168行,在\uu connect中
use\u transactions=self.use\u transactions,
文件“C:\Python27\lib\site packages\sqlserver\u ado\dbapi.py”,第151行,在connect中
引发操作错误(e,“打开连接时出错:“+连接\u字符串”)
sqlserver_ado.dbapi.OperationalError:“AttributeError”(“模块”对象没有属性“VARIANT”),“打开连接时出错:数据源=localhost;初始目录=dbtest;UID=App;PWD=**************;PROVIDER=SQLNCLI10;MARS连接=True;DataTypeCompatibility=80;MARS连接=True;”)
已完成“C:\Python27\datasatelite\manage.py syncdb”执行。
我到处都找过了,似乎无法理解和解决问题。我希望有人能帮忙!
谢谢
编辑:
我已经创建了数据库。我还使用django pyodbc连接到数据库,并且成功地从数据库进行了读写。但当我使用Apache时,django pyodbc会导致问题,这就是我决定尝试django mssql的原因。然而,我不理解它所带来的错误
我的Django(1.4.2)和Python(2.7)安装在Windows上运行,我使用的是Apache Web服务器。更新pywin32以构建217或更高版本。我在stackoverflow上发现了另一个问题(另一个主题):
您是否创建了尝试连接的基础?是的,数据库已经存在。您的python安装运行在什么类型的服务器上?@HackingLife我已经用答案更新了我的问题。谢谢哪个版本的django mssql和哪个版本的pywin32?我回到django pyodbc并设法用Apache解决了这个问题。无论如何,谢谢你!