欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

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

时间:2023-07-21
系列文章目录 需求分析——基于Django框架的天天生鲜电商网站项目系列博客(一)网站框架搭建——基于Django框架的天天生鲜电商网站项目系列博客(二)用户注册模块——基于Django框架的天天生鲜电商网站项目系列博客(三)用户登录模块——基于Django框架的天天生鲜电商网站项目系列博客(四)用户中心模块——基于Django框架的天天生鲜电商网站项目系列博客(五)分布式FastDFS文件系统——基于Django框架的天天生鲜电商网站项目系列博客(六)天天生鲜首页——基于Django框架的天天生鲜电商网站项目系列博客(七)天天生鲜详情页——基于Django框架的天天生鲜电商网站项目系列博客(八)待更新……
项目资源下载 天天生鲜电商网站项目源码Github地址(可Fork可Clone)天天生鲜电商网站项目源码Gitee地址(可Fork可Clone)天天生鲜电商网站项目源码压缩包下载(直接使用)天天生鲜电商网站项目所需全部工具合集打包下载(nginx、libfastcommon、fastdfs-nginx、fastdfs)天天生鲜电商网站项目MySql数据库文件(直接导入MySql数据库)Django1.8官方文档(中文版)
文章目录

系列文章目录项目资源下载前言一、导入数据二、商品模型类概述三、首页内容获取和展示四、redis存储购物车记录分析五、首页获取购物车商品数目六、页面静态化celery生成首页静态页面七、配置nginx提交静态页面八、admin管理更新首页数据表数据时重新生成index静态页面九、静态index页面和IndexView的调度说明十、首页数据缓存设置和获取十一、首页缓存数据的更新十二、常见问题解答

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


前言

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


一、导入数据 取消外键约束
导入数据
恢复外键约束
二、商品模型类概述 首先要显示首页界面,所以修改index.html,继承base.html,还有其他修改
重新修改视图函数
因为这是首页,所以不管在哪都应该能访问到,那么首先在项目的urls.py中修改
然后在应用的urls.py中修改
成功展示界面
三、首页内容获取和展示 首先我们要修改数据库内容。在上一篇博客中我说了我要介绍不用FastDFS分布式的方法,这里就是,如有需要希望仔细学习。因为最后上服务器跑素材也都要放到服务器,索性就直接把数据库中的图片改成相对路径就可以了,这个相对路径就是项目中static中那些素材路径,所有的都要改,一个一个来,既然不想用FastDFS就要麻烦一点哈哈
然后正式开始制作首页内容,我们先来分析一下,这是到现在第一次用到数据库,先来看models.py的内容,这里直接和数据库做交互
然后来到视图函数,从现在开始我们是在goods这个应用中,我们先导入刚才的models.py中的模块
然后新建视图类,继承View
因为在首页都是get请求,所以我们新建get函数
然后在这个函数中,获取商品的各种信息
然后组织模板上下文,把所有获取到的内容存到字典中,以便一会传到html中
然后就是使用模板,传入刚才获取到的内容
整体代码如下
然后来到index.html中,我们首先需要继承自base.html
我们还要把继承过来的块放到相应位置,然后用for循环接收刚才的内容,都放到相应的位置,如下:

完成,最终展示效果如下:
四、redis存储购物车记录分析 五、首页获取购物车商品数目 导入需要的库
修改视图函数
修改模板文件
这里可能会遇到一个问题,具体见十二、常见问题解答中的12.1 首页获取购物车商品数目时出错 六、页面静态化celery生成首页静态页面 这是什么?
创建task.py
分别拷贝base.html和index.html

七、配置nginx提交静态页面 八、admin管理更新首页数据表数据时重新生成index静态页面 流程图示
代码如下

九、静态index页面和IndexView的调度说明 十、首页数据缓存设置和获取 首先导入所需库
修改视图函数,首先将公共的部分提取到设置缓存前面,我们要把这些放到缓存中,因为购物车记录不是公共的,所以不放在那里
然后 在下面设置缓存,传入数据
然后把购物车记录更新到数据中
这个时候在视图函数最开始我们要判断一下,我们先接收缓存数据,如果为空,则没有设置缓存,我们就要在数据库中调用数据,最后设置一下缓存就好了,这里print一下,看是否缓存成功
然后下面的所有代码缩进,整体代码如下:
redis中已经有了缓存数据
十一、首页缓存数据的更新 十二、常见问题解答 12.1 首页获取购物车商品数目时出错 具体错误
错误原因
解决方法

总结

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

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。