Django没有从数据库发布值

时间:2017-06-10 07:04:21

标签: python mysql django

我是django和python的初学者。我试图将数据库中的值发布到我的html模板但不能这样做 这是我的模型文件

from __future__ import unicode_literals

    `from django.db import models

    `class post(models.Model):
        title = models.CharField(max_length=140)
        body = models.TextField()
        date = models.DateTimeField()`
        `from django.db import models`

    urls file

        `from django.conf.urls import url,include
    from . import views
    from django.contrib.auth.views import login
    from django.views.generic import ListView, DetailView
    from personal.models import post`

    `urlpatterns = [

        url(r'^projects/',views.projects, name='projects'),`

       views.py file

# -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.shortcuts import render
from .models import post
from personal.models import post

def projects(request):
    return render(request,'personal/projects.html')

虽然我在我的模板projects.html中通过{{post.title}}或{{projects_post.title}}引用它时在mysql中创建了一个table personal_post,但它没有返回任何值。 ]

此外,我已经使用python的方式和django释放2017年作为学习django,任何其他理解的书籍的一部分

1 个答案:

答案 0 :(得分:0)

您需要将posts作为上下文中的变量传递给视图,以便在模板上呈现它。

试试这个,

def projects(request): 
    posts = post.objects.all()
    return render(request,'personal/projects.html', {'posts' : posts })

在你的模板中,

{% for post in posts %}
    {{ post.title }}
{% endfor %}

要将变量从视图渲染到模板,您需要传递一个上下文,这是一个字典,其中键作为名称,值作为变量的内容。

查看文档,详细了解render功能和背景here...