我是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,任何其他理解的书籍的一部分
答案 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...