0x00 案例实现

  • 创建的项目名称为BookManager,创建应用名称为Book,完成图书信息的维护
  • 访问图书信息列表127.0.0.1:8000/booklist,并且点击每个图书能够跳转到对应图书人物信息界面

0x01 代码实现

1、修改templates\booklist.html代码

1
2
原来:<li><h1><a href="#">{{ book.name }}</a></h1></li>
现在:<li><h1><a href="{{ book.id }}/">{{ book.name }}</a></h1></li> #通过id值来进行对应书籍人物信息查询

2、在Book\views.py中新添peoplelist函数

1
2
3
4
5
6
7
def peoplelist(request, book_id):	#book_id从url中直接传入
book = BookInfo.objects.get(id=book_id) #通过id查询书籍
people_list = book.peopleinfo_set.all() #获取书籍中的所有人物
context = {
'people_list': people_list
}
return render(request, 'peoplelist.html', context)

3、在BookManager\urls.py中新添url规则

1
re_path(r'^booklist/(\d+)/$', views.peoplelist), #(\d+)里的内容将直接传入peoplelist函数中的book_id参数

如果没有导入re_path需要导入一下

1
from django.urls import re_path

4、新建templates\eoplelist.html文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>人物信息</title>
</head>
<body>
<ul>
{% for people in people_list %}
<li><h1>{{ people.name }}</h1></li>
{% endfor%}
</ul>
</body>
</html>

5、最后实现功能:

6、总结MVT流程

更多信息欢迎关注我的微信公众号:TeamsSix

参考链接:https://youtu.be/BXyGr9JQVcc