首页 > 解决方案 > django 从 mysql 数据库中检索数据

问题描述

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

模型.py:

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

    def __unicode__(self):
        return self.name

视图.py:

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

试卷.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)

标签: pythondjango

解决方案


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,登录,你应该在那里找到你的模型测试并向其中添加对象


推荐阅读