一、首页菜单的实现
如上图首页菜单红框中是动态生成的,所以这些数据的来源是数据库中。
在首页视图函数里,查询出所有的文章分类名称,在模板中加载这些数据就显示为上图菜单。
blog/views.py
def test(request): all_Class = Classes.objects.all()#通过Classes表查出所有分类 #把查询出来的分类封装到字典中 context = { 'all_Class': all_Class, } return render(request, 'blog/test.html', context)#把字典传到index.html页面
blog/test.html
<!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/html"> <head> <meta charset="UTF-8"> <title>Title</title> {% load static %} </head> <body> {% for c in all_Class %} <h3>{{ c.class_name }}</h3> {% endfor %} </body> </html>
效果如图,查出来的
二 、整个流程是这样的:
1. blog/views.py 通过 all_Class 查询数据库得到分类的所有信息
2. blog/views.py 通过render 将context 字典传给'blog/test.html'模板
3. blog/test.html 通过这个标签接收数据 {% for c in all_Class %}
4. blog/test.html 通过双大括号加上单个对象的字段名 <h3>{{ c.class_name }}</h3>,最终展示到浏览器中