Django视图层的示例
下面是一个稍微复杂一些的视图函数的示例,它演示了如何从数据库中读取数据并将其呈现为HTML页面:
代码语言:javascript复制from django.shortcuts import render
from .models import Book
def book_list(request):
books = Book.objects.all()
return render(request, 'book_list.html', {'books': books})
在这个例子中,我们从models.py文件中导入了Book模型。这个视图函数使用Book.objects.all()方法从数据库中获取所有的Book对象,并将它们存储在一个名为books的变量中。然后,它使用render函数将一个名为book_list.html的模板与这些书籍一起呈现给用户。
下面是一个简单的book_list.html模板的示例:
代码语言:javascript复制<!DOCTYPE html>
<html>
<head>
<title>Book List</title>
</head>
<body>
<h1>Book List</h1>
<ul>
{% for book in books %}
<li>{{ book.title }} by {{ book.author }}</li>
{% endfor %}
</ul>
</body>
</html>
在这个模板中,我们使用了Django的模板语言来循环遍历我们之前从数据库中获取的books变量,并将每个书籍的标题和作者呈现为一个HTML列表。