[Django]Django如何连接MSSQL数据库?
近期对照着《Django Step by Step 》学习Django.前面几张挺顺利的。只是到了《Django Step by Step (五)》时需要配置数据库,遇到问题。
文章中介绍是使用sqlite3数据库的,而我要用mssql数据库。
(所用代码为文章中的代码,使用的Django为0.95版)
于是在settings.py中修改数据库的配置
DATABASE_ENGINE = 'ado_mssql'
DATABASE_NAME = 'message'
DATABASE_USER = 'sa'
DATABASE_PASSWORD = 'xxx'
DATABASE_HOST = ''
DATABASE_PORT = ''
LANGUAGE_CODE = 'zh-CN'
DEFAULT_CHARSET = 'GB18030'
但是在提交输入的USERNAME后,就出现错误。
另外连进行
manage.py syncdb
也产生错误。 错误的截图
提示中说明:Error loading adodbapi module: No module named adodbapi
是否需要安装Module?
[ 本帖最后由 sunable 于 2006-11-17 08:58 编辑 ] 在安装了ADODBAPI后,下载的是2.0.1版,但是PYTHON/Lib/site-packages下生成的是adodbapi-1.0.1-py2.5.egg-info
刷新了页面,出现的错误是
[ 本帖最后由 sunable 于 2006-11-15 11:53 编辑 ] 最后的错误已经与数据库无关了。好象是其它的什么错误,没有遇到过。 在运行syncdb时,提示缺少win32com.client. 安装了pywin32-210.win32-py2.5,不出现缺少win32com.client的提示。
但是运行manage.py syncdb,依旧出现错误
Traceback (most recent call last):
File "D:\Home\newtest\manage.py", line 11, in <module>
execute_manager(settings)
File "D:\Program Files\Python25\lib\site-packages\django-0.95-py2.5.egg\django
\core\management.py", line 1319, in execute_manager
execute_from_command_line(action_mapping, argv)
File "D:\Program Files\Python25\lib\site-packages\django-0.95-py2.5.egg\django
\core\management.py", line 1243, in execute_from_command_line
action_mapping()
File "D:\Program Files\Python25\lib\site-packages\django-0.95-py2.5.egg\django
\core\management.py", line 450, in syncdb
table_list = _get_table_list()
File "D:\Program Files\Python25\lib\site-packages\django-0.95-py2.5.egg\django
\core\management.py", line 68, in _get_table_list
return get_introspection_module().get_table_list(cursor)
File "D:\Program Files\Python25\lib\site-packages\django-0.95-py2.5.egg\django
\db\backends\ado_mssql\introspection.py", line 2, in get_table_list
raise NotImplementedError
NotImplementedError
看错误是ado_mssql这个模块有问题,不清楚了。没用过mssql,建议你去django邮件列表中问一下。 对Django打了N多的补丁后,终于出来效果了。
补丁地址:http://code.djangoproject.com/attachment/ticket/2358/mssql_update5.diff
效果如下:
[ 本帖最后由 sunable 于 2006-11-15 16:57 编辑 ] 另外运行manage.py syncdb时,提示选择要建立新账户。
但是我选择no,这对以后的《Django Step by Step》中的例子没影响吧?
对Django打补丁有什么工具、命令的,我是手工修改的?
[ 本帖最后由 sunable 于 2006-11-15 16:39 编辑 ] 那里创建的帐户是超级用户。如果你在使用django的admin功能,必须先有一个超级用户。现在没有创建,以后还可以创建。前面的例子虽然用到了数据库,但还没有用到admin。
不知道你所说的打补丁是如何打的。如果是没有合并到主干中的patch,那只能手工来打。如果已经合并到主干中了,同步下django,再安装一下就可以了。
页:
[1]
2