我是python的新手,但是我从MV体验中对MVC有了一个很好的想法。 我在视图中有以下python代码
from django.http import HttpResponse
from django.template.loader import render_to_string
class MyListClass:
def __init__(self, link, text):
self.link = link
self.text = text
def index(request):
list1 = MyListClass("hi","_hi_")
list2 = MyListClass("hello","_hello_")
bullets = [list1,list2]
return HttpResponse(render_to_string("nest.html"), {"bullets": bullets})
以及HTML模板中的以下代码段
{% for bullet in bullets %}
<h2>
<a href="{{ bullet.link }}">
{{ bullet.text }}
</a>
</h2>
{% endfor %}
但是这些值不是在html中发布的,而其他静态文本是从HTNL中呈现的。 根据{{3}},通过的对象必须是dictonary。 如果我在某个地方出错了,请告诉我。
答案 0 :(得分:2)
虽然您的代码应该可行(假设您将上下文传递给您发现的正确方法),但通常使用render
方法而不是直接构建HttpResponse
。
from django.shortcuts import render
def index(request):
bullets = [
MyListClass("hi", "_hi_"),
MyListClass("hello", "_hello_")
]
return render(request, "index.html", {"bullets": bullets})