首页广告展示
实现首页轮播图广告 快讯广告 一楼(手机) 二楼(电脑数码) 三楼(家居家装)广告页面展示
{
"index_lbt":[
{
"id":1,
"category": 1,
"title": '美图',
"url": 'http://www.baidu.com',
"image": "group/M00/00/01/ADASDADA-CZXCSAasdsadada",
"text": "",
"sequence": 1,
"status": 1
},
{
"id":2,
"category": 1,
"title": '黑色星期五',
"url": 'http://www.baidu.com',
"image": "group/M00/00/01/ADASDADA-CZXCSAasdsadada",
"text": "",
"sequence": 2,
"status": 1
}
],
"index_kx":[
{
"id":5,
"category": 2,
"title": 'i7顽石低至3999',
"url": 'http://www.baidu.com',
"image": "group/M00/00/01/ADASDADA-CZXCSAasdsadada",
"text": "",
"sequence": 2,
"status": 1
},
]
}
"""
分析所需要的数据结构:是一个json的格式
1.“index_lbt” 是广告类别表 tb_content_category的数据,下面的id,category,是tb_content广告内容表字段,是将轮播图里面所有的数据放在一个大列表下面,每个列表里面有字典,即json格式。后面 “index_kx” 是快讯与轮播图一样。
- 如何拼接成这种字典格式?查询商品类别的时候,已知道?
我们需要查询所有的商品广告,这些数据在tb_content广告内容和广告 类别表 tb_content_category中,先查出所有广告的类别,导入modles.py中的ContentCategory,
查询出所有广告类别: context_categroies = ContentCategory.objects.all()
tb_content_category表
tb_content广告内容表
contens/views.py
# print(categories)
# 查询所有的首页广告
# 查询所有的广告类别
context_categories = ContentCategory.objects.all()
# print(context_categories)
contents = {
}
for context_category in context_categories:
# {'index_lbt': <QuerySet [<Content: 轮播图: 美图M8s>, <Content: 轮播图: 黑色星期五>, <Content: 轮播图: 厨卫365>, <Content: 轮播图: 君乐宝买一送一>]>,
contents[context_category.key] = Content.objects.filter(category_id=context_category.id, status=True).all().order_by('sequence')
print(contents)
context = {
"categories": categories,
"contents": contents,
}
return render(request, 'index.html', context=context)
index.html 轮播图广告
<ul class="slide">
{
% for content in contents.index_lbt %}
<li><a href="{
{ content.url }}"><img src="http://192.168.65.145:8888/{
{ content.image }}" alt="幻灯片01"></a></li>
{
% endfor %}
</ul>
index.html 快讯和页头广告
<div class="news">
<div class="news_title">
<h3>快讯</h3>
<a href="#">更多 ></a>
</div>
<ul class="news_list">
{
% for content in contents.index_kx %}
<li><a href="{
{ content.url }}">{
{
content.title }}</a></li>
{
% endfor %}
</ul>
{
% for content in contents.index_ytgg %}
<a href="{
{ content.url }}" class="advs"><img src="{
{ content.image }}"></a>
{
% endfor %}
</div>
</div>
index.html 楼层广告(一楼)
<div class