我是后端的初学者。尝试在我的windows机器上测试web服务。
在linux服务器上,我有一台可以正常工作的机器,其数据库设置如下:
DATABASES = {
'default': {
'ENGINE': 'django_pyodbc',
'NAME': 'database_name',
'USER': 'user@server_name',
'PASSWORD': 'pass',
'HOST': 'host',
'PORT': '1433',
'OPTIONS': {
'driver': 'FreeTDS',
}
},在向git提交任何内容之前,我希望在我的windows pc上本地运行web服务。为此,我使用django-pyodbc-azure 1.0.10,它在这里提供:
https://github.com/michiya/django-pyodbc-azure/tree/dd87bd3379475ff596210a9243c04c01add0be4d
在我本地的windows电脑上
DATABASES = {
'default': {
'ENGINE': 'sql_server.pyodbc',
'NAME': 'database_name',
'USER': 'user@server_name',
'PASSWORD': 'pass',
'HOST': 'server_name.database.windows.net',
'PORT': '',
'OPTIONS': {
'driver': 'SQL Server Native Client 11.0',
'MARS_Connection': True,
}
},我相应地更改了我的设置,但它给出了以下错误:
File "C:\Python27\lib\site-packages\sql_server\pyodbc\base.py", line 396, in execute
raise utils.DatabaseError(*e.args)
DatabaseError: ('42000', '[42000] [Microsoft][SQL Server Native Client 11.0][SQL Server]Error converting data type nvarchar to int. (8114) (SQLExecDirectW)')我猜它连接了数据库,但它创建了一个转换错误。
我正在使用postman来发布服务,使用
http://127.0.0.1:8000/api/GetFixture 它会引发500内部服务器错误。但是这个服务在linux服务器上运行得很好。
发布于 2014-05-08 20:36:03
我使用django-pyodbc而不是django-pyodbc-azure,然而,它是一个分支。我相信您只需要在Linux端的选项中添加以下内容:
'OPTIONS': {
'host_is_server': True,
'autocommit': True,
'unicode_results': True,
'extra_params': 'tds_version=8.0'
},在windows机器上,只需确保包含:
'host_is_server': True,
'autocommit': True,
'unicode_results': True,另请注意,HOST采用以下形式:
'HOST': 'database.domain.com,1433',SQL1433是运行...where的端口。自动提交对于Django 1.6+是必需的。
https://stackoverflow.com/questions/20283199
复制相似问题