数据库密码中的`&`字符给django dbshel​​l带来错误

时间:2014-03-09 08:39:02

标签: django django-shell

我在Django中使用&&符号登录我的数据库密码。 settings.py文件如下所示:

DATABASES = {
    'default': {
        'ENGINE'    : 'django.db.backends.mysql',
        'NAME'      : 'testdb',
        'USER'      : 'user1',
        'PASSWORD'  : 'pass&word',
        'HOST'      : '', 
        'PORT'      : '',
    }
}

我使用dbshell

收到以下错误
$ python manage.py dbshell

Warning: Using a password on the command line interface can be insecure.
ERROR 1045 (28000): Access denied for user 'user1'@'localhost' (using password: YES)
'word' is not recognized as an internal or external command,
operable program or batch file.

如果我的密码为pass&word,您可以看到命令在&字符后中断。我该怎么解决这个问题(除了更改我的密码)。它是一个Django错误还是我应该逃避角色?

P.S。 python manage.py runserver没有任何问题。在Win7上使用命令提示符。

1 个答案:

答案 0 :(得分:1)

Django中的错误。

  

票证:https://code.djangoproject.com/ticket/22234
  修复:https://github.com/django/django/pull/2412
  图片来源:@lanzz