【问题标题】:Can't retrieve data from mysql to html template in django (PyCharm)无法从 mysql 检索数据到 django 中的 html 模板(PyCharm)
【发布时间】:2020-09-24 04:03:25
【问题描述】:

我希望有人可以在这里帮助我;在学习Web开发的这一部分中被卡住了一段时间。我在 PyCharm 社区版中使用 django。 Apache 和 MySQL 的一切似乎都运行良好。我正处于制作 html 模板的阶段,我能够将数据记录到 MySQL 数据库中。我想将数据库中的数据检索到模板中,但它不起作用,并且在 PyCharm 中定义视图时,我收到一条警告,提示“类 '...' 的未解析属性引用 '...'”。这些是我的文件:

# views.py

from django.shortcuts import render
from .models import AirplanePics # AirplanePics is a model

def pictures(request):
    obj = AirplanePics.objects.get(id=1)
    context = {
        'datax': obj,
    }
    return render(request, 'pictures.html')

在模型中,我尝试了在此论坛中阅读的解决方法,但它只是识别了“对象”(在 views.py 类中)并删除了警告

# models.py

from django.db import models

class AirplanePics(models.Model):
    author = models.CharField(max_length=30)
    title = models.CharField(max_length=30)
    description = models.TextField()

    def __str__(self):
        return self.author
# models.py (with the workaround)

from django.db import models

class BaseModel(models.Model):
    objects = models.Manager()
    class Meta:
        abstract = True

class AirplanePics(BaseModel):
    id = models.AutoField(primary_key=True)
    author = models.CharField(max_length=30)
    title = models.CharField(max_length=30)
    description = models.TextField()

    def __str__(self):
        return self.author

我只是希望能够显示作者(例如):

# pictures.html

<h1>{{datax.author}}</h1>

...但是当我运行服务器时页面没有显示任何内容。 另外:

# urls.py

from django.urls import path
from .views import pictures, home

urlpatterns = [
    path('pictures/', pictures, name='pictures'),
    path('home/', home, name='home')
]

【问题讨论】:

    标签: html mysql django pycharm


    【解决方案1】:

    它没有显示的原因是,您没有将上下文传递给模板。

    def pictures(request):
        obj = AirplanePics.objects.get(id=1)
        context = {
            'datax': obj,
        }
        return render(request, 'pictures.html', context)
    

    一旦您删除图片并创建另一个图片,id 将被更改,因此最好调用。您的第一个模型足以胜任这项工作。

    obj = AirplanePics.objects.first()
    

    【讨论】:

    • 非常感谢!就这么简单。也感谢您的建议。
    猜你喜欢
    • 1970-01-01
    • 2016-09-08
    • 2022-01-16
    • 2020-11-08
    • 2016-06-04
    • 2013-02-13
    • 1970-01-01
    • 1970-01-01
    • 2016-12-08
    相关资源
    最近更新 更多