首页——基于Django框架的天天生鲜电商网站项目系列博客(七)

系列文章目录

  1. 需求分析——基于Django框架的天天生鲜电商网站项目系列博客(一)
  2. 网站框架搭建——基于Django框架的天天生鲜电商网站项目系列博客(二)
  3. 用户注册模块——基于Django框架的天天生鲜电商网站项目系列博客(三)
  4. 用户登录模块——基于Django框架的天天生鲜电商网站项目系列博客(四)
  5. 用户中心模块——基于Django框架的天天生鲜电商网站项目系列博客(五)
  6. 分布式FastDFS文件系统——基于Django框架的天天生鲜电商网站项目系列博客(六)
  7. 首页——基于Django框架的天天生鲜电商网站项目系列博客(七)
  8. 详情页——基于Django框架的天天生鲜电商网站项目系列博客(八)
  9. 列表页——基于Django框架的天天生鲜电商网站项目系列博客(九)
  10. 商品搜索——基于Django框架的天天生鲜电商网站项目系列博客(十)
  11. 购物车记录添加——基于Django框架的天天生鲜电商网站项目系列博客(十一)
  12. 购物车记录更新——基于Django框架的天天生鲜电商网站项目系列博客(十二)
  13. 订单生成——基于Django框架的天天生鲜电商网站项目系列博客(十三)
  14. 订单并发处理——基于Django框架的天天生鲜电商网站项目系列博客(十四)
  15. 订单支付和评论——基于Django框架的天天生鲜电商网站项目系列博客(十五)
  16. 网站部署——基于Django框架的天天生鲜电商网站项目系列博客(十六)
  17. 项目总结——基于Django框架的天天生鲜电商网站项目系列博客(十七)

项目资源下载

  1. 天天生鲜电商网站项目源码Github地址(可Fork可Clone)
  2. 天天生鲜电商网站项目源码Gitee地址(可Fork可Clone)
  3. 天天生鲜电商网站项目源码压缩包下载(直接使用)
  4. 天天生鲜电商网站项目所需全部工具合集打包下载(nginx、libfastcommon、fastdfs-nginx、fastdfs)
  5. 天天生鲜电商网站项目MySql数据库文件(直接导入MySql数据库)
  6. Django1.8官方文档(中文版)


前言

  今天这篇博客终于要迎来重头戏了,我们要导入我们的数据,并且要完善数据库以及数据库和网站的交互,并且设计网站首页界面,让数据在网站上展示出来,并且配置各页面之间的调度功能以及数据缓存功能,还包括一些页面静态化和缓存数据的知识,这篇博客异常重要的原因就是上面,另外所需工具和数据我都放在了上面的链接,如有需要,直接下载即可,那么就开始今天的学习吧!


一、导入数据

  1. 取消外键约束
    在这里插入图片描述
  2. 导入数据
    在这里插入图片描述
  3. 恢复外键约束
    在这里插入图片描述

二、商品模型类概述

  1. 首先要显示首页界面,所以修改index.html,继承base.html,还有其他修改
    在这里插入图片描述
  2. 重新修改视图函数
    在这里插入图片描述
  3. 因为这是首页,所以不管在哪都应该能访问到,那么首先在项目的urls.py中修改
    在这里插入图片描述
  4. 然后在应用的urls.py中修改
    在这里插入图片描述
  5. 成功展示界面
    在这里插入图片描述

三、首页内容获取和展示

  1. 首先我们要修改数据库内容。在上一篇博客中我说了我要介绍不用FastDFS分布式的方法,这里就是,如有需要希望仔细学习。因为最后上服务器跑素材也都要放到服务器,索性就直接把数据库中的图片改成相对路径就可以了,这个相对路径就是项目中static中那些素材路径,所有的都要改,一个一个来,既然不想用FastDFS就要麻烦一点哈哈
    在这里插入图片描述
  2. 然后正式开始制作首页内容,我们先来分析一下,这是到现在第一次用到数据库,先来看models.py的内容,这里直接和数据库做交互
    在这里插入图片描述
  3. 然后来到视图函数,从现在开始我们是在goods这个应用中,我们先导入刚才的models.py中的模块
    在这里插入图片描述
  4. 然后新建视图类,继承View
    在这里插入图片描述
  5. 因为在首页都是get请求,所以我们新建get函数
    在这里插入图片描述
  6. 然后在这个函数中,获取商品的各种信息
    在这里插入图片描述
  7. 然后组织模板上下文,把所有获取到的内容存到字典中,以便一会传到html中
    在这里插入图片描述
  8. 然后就是使用模板,传入刚才获取到的内容
    在这里插入图片描述
  9. 整体代码如下
    在这里插入图片描述
  10. 然后来到index.html中,我们首先需要继承自base.html
    在这里插入图片描述
  11. 我们还要把继承过来的块放到相应位置,然后用for循环接收刚才的内容,都放到相应的位置,如下:
    在这里插入图片描述
    在这里插入图片描述
  12. 完成,最终展示效果如下:
    在这里插入图片描述

四、redis存储购物车记录分析

在这里插入图片描述

五、首页获取购物车商品数目

  1. 导入需要的库
    在这里插入图片描述
  2. 修改视图函数
    在这里插入图片描述
  3. 修改模板文件
    在这里插入图片描述
  4. 这里可能会遇到一个问题,具体见十二、常见问题解答中的12.1 首页获取购物车商品数目时出错

六、页面静态化celery生成首页静态页面

  1. 这是什么?
    在这里插入图片描述
  2. 创建task.py
    在这里插入图片描述
  3. 分别拷贝base.html和index.html
    在这里插入图片描述
    在这里插入图片描述

七、配置nginx提交静态页面

在这里插入图片描述

八、admin管理更新首页数据表数据时重新生成index静态页面

  1. 流程图示
    在这里插入图片描述
  2. 代码如下
    在这里插入图片描述
    在这里插入图片描述

九、静态index页面和IndexView的调度说明

在这里插入图片描述

十、首页数据缓存设置和获取

  1. 首先导入所需库
    在这里插入图片描述
  2. 修改视图函数,首先将公共的部分提取到设置缓存前面,我们要把这些放到缓存中,因为购物车记录不是公共的,所以不放在那里
    在这里插入图片描述
  3. 然后 在下面设置缓存,传入数据
    在这里插入图片描述
  4. 然后把购物车记录更新到数据中
    在这里插入图片描述
  5. 这个时候在视图函数最开始我们要判断一下,我们先接收缓存数据,如果为空,则没有设置缓存,我们就要在数据库中调用数据,最后设置一下缓存就好了,这里print一下,看是否缓存成功
    在这里插入图片描述
  6. 然后下面的所有代码缩进,整体代码如下:
    在这里插入图片描述
  7. redis中已经有了缓存数据
    在这里插入图片描述

十一、首页缓存数据的更新

在这里插入图片描述

十二、常见问题解答

12.1 首页获取购物车商品数目时出错

  1. 具体错误
    在这里插入图片描述
  2. 错误原因
    在这里插入图片描述
  3. 解决方法
    在这里插入图片描述

总结

  这篇博客也终于完成了,有点长啊,一万多字了都,但是功夫不负有心人,网站首页我们已经完成了,接下来就一步一步完成每个模块就好了,下一篇博客会给大家带来网站详情页的搭建!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IronmanJay

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值