继Django教程之后-当我尝试从Client()收到响应时,用户'Django'@'localhost'的访问被拒绝(使用密码:是)“)

时间:2019-03-28 13:34:31

标签: python html django django-forms

当我尝试按照本教程中的步骤进行操作时:

>>> # on the other hand we should expect to find something at '/polls/'
>>> # we'll use 'reverse()' rather than a hardcoded URL
>>> from django.urls import reverse
>>> response = client.get(reverse('polls:index'))

我得到答复:

django.db.utils.OperationalError: (1045, "Access denied for user 'Django'@'localhost' (using password: Yes)")

我正在使用WAMP Server 3.1.7,Python 3.7.2和Django 2.1.7。

(本教程位于this link,如果需要我在本文中未提供的任何背景信息。)

在我的settings.py文件中,这是我来自DATABASES段的摘录:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'lab',
        'USER': 'Django',
        'PASSWORD': 'MYPASS',
        'HOST': 'localhost',
        'PORT': '3306',
    }
}

我尝试过更改用户,但是这似乎不是从中拉出用户的位置,因为我仍然遇到与“ Django” @ ...而不是“ ChangedUser” @相同的错误。就像我预期的那样。

我可以使用以下命令通过命令提示符登录mysql:

mysql -u Django -p
Enter password: MYPASS

使用这种方法,我可以顺利登录。

我还尝试使用root登录并使用以下方式授予数据库中用户Django的所有权限:

GRANT ALL ON my_db.* TO 'Django'@'localhost';

我得到响应Query OK,受影响的0行。

当我尝试创建用户Django时,以防万一它不存在,请使用:

CREATE USER 'Django'@'localhost' IDENTIFIED BY 'MYPASS'

我收到错误消息“ ERROR 1396(HY000):'Django'@ localhost'的CREATE USER操作失败

目前我有多个文件,太多了,无法合理地放在这里。 this tutorial的各个步骤中列出了所有文件及其代码。

在我看来,以下是最相关的摘要:

settings.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'lab',
        'USER': 'Django',
        'PASSWORD': 'MYPASS',
        'HOST': 'localhost',
        'PORT': '3306',
    }
}

polls.py

{% if latest_question_list %}
<ul>
    {% for question in latest_question_list %}
        <li><a href="{% url 'polls:detail' question.id %}">{{question.question_text }}</a></li>
    {% endfor %}
</ul>
{% else %}
    <p>No polls are available.</p>
{% endif %}

除代码外,最有用的东西可能是文件夹结构:


mysite

  mysite
    __pycache__
    __init__.py
    settings.py
    urls.py
    wsgi.py

  polls
    __pycache__
    migrations
      __pycache__
      __init__.py
      0001_initial.py
      0002_auto_20190322_0945.py
    templates
      polls
        detail.html
        index.html
        results.html
    __init__.py
    admin.py
    apps.py
    models.py
    tests.py
    urls.py
    views.py
  db.sqlite3
  manage.py

我可以根据要求提供其他任何东西。

预期结果:

没事

>>> response = client.get(reverse('polls:index'))

“ 200”

之后

>>> response.status_code

实际结果:

django.db.utils.OperationalError: (1045, "Access denied for user 'Django'@'localhost' (using password: Yes)")

之后

>>> response = client.get(reverse('polls:index'))

0 个答案:

没有答案