django从mysql数据库检索数据

时间:2018-08-24 08:06:25

标签: python django

我是Django的新手。 我需要有关从mysql数据库检索数据并将其显示在html页面上的帮助。 有人可以请教。非常感激! :)

Models.py:

class testing(models.Model):
    name = models.TextField(null=True)
    title = models.CharField(max_length=70, null=False)

    def __unicode__(self):
        return self.name

Views.py:

def testing_view(request):
    test = testing.objects.get(id=1)
    return render(request, 'exampapersnew/exampaper.html', {'test': test})

exampapers.html:

      <div class="control-group">
          <div class="controls">
            <h1>{{ test }}</h1>

          </div>
      </div>

mySQL数据库:

SELECT * FROM exampapersnew_testing;
+----+-----------+-------+
| id | name      | title |
+----+-----------+-------+
|  1 | Geraldine | Ms    |
+----+-----------+-------+
1 row in set (0.00 sec)

1 个答案:

答案 0 :(得分:0)

test不是您的类测试的实例。它是测试类中所有对象的QuerySet。因此,在html中,应该使用for循环显示所有拥有的测试对象(无论是一个还是多个对象都没关系,无论如何都必须循环)。

在您的html中:

{% for t in test %}
 Name: {{ t.name }}
 Title: {{ t.title }}
{% endfor %}

PS:如果您没有将对象添加到数据库中,则不会显示任何内容

编辑1

您已编辑问题,因此我的答案已无意义。在这种情况下,我认为您的数据库连接有问题。

编辑2

1 /在您的控制台中:运行python manage.py createsuperuser并填写您的用户名和密码。

2 /在您的admin.py中添加以下内容:

from django.contrib import admin
from .models import testing

admin.site.register(testing)

3 /运行makemigrations并再次迁移以确保所有内容都到位

4 /运行python manage.py runserver并打开your_localhost / admin,登录,您应该在那里找到要测试的模型并向其中添加对象