系列文章目录
- 需求分析——基于Django框架的天天生鲜电商网站项目系列博客(一)
- 网站框架搭建——基于Django框架的天天生鲜电商网站项目系列博客(二)
- 用户注册模块——基于Django框架的天天生鲜电商网站项目系列博客(三)
- 用户登录模块——基于Django框架的天天生鲜电商网站项目系列博客(四)
- 用户中心模块——基于Django框架的天天生鲜电商网站项目系列博客(五)
- 分布式FastDFS文件系统——基于Django框架的天天生鲜电商网站项目系列博客(六)
- 首页——基于Django框架的天天生鲜电商网站项目系列博客(七)
- 详情页——基于Django框架的天天生鲜电商网站项目系列博客(八)
- 列表页——基于Django框架的天天生鲜电商网站项目系列博客(九)
- 商品搜索——基于Django框架的天天生鲜电商网站项目系列博客(十)
- 购物车记录添加——基于Django框架的天天生鲜电商网站项目系列博客(十一)
- 购物车记录更新——基于Django框架的天天生鲜电商网站项目系列博客(十二)
- 订单生成——基于Django框架的天天生鲜电商网站项目系列博客(十三)
- 订单并发处理——基于Django框架的天天生鲜电商网站项目系列博客(十四)
- 订单支付和评论——基于Django框架的天天生鲜电商网站项目系列博客(十五)
- 网站部署——基于Django框架的天天生鲜电商网站项目系列博客(十六)
- 项目总结——基于Django框架的天天生鲜电商网站项目系列博客(十七)
项目资源下载
- 天天生鲜电商网站项目源码Github地址(可Fork可Clone)
- 天天生鲜电商网站项目源码Gitee地址(可Fork可Clone)
- 天天生鲜电商网站项目源码压缩包下载(直接使用)
- 天天生鲜电商网站项目所需全部工具合集打包下载(nginx、libfastcommon、fastdfs-nginx、fastdfs)
- 天天生鲜电商网站项目MySql数据库文件(直接导入MySql数据库)
- Django1.8官方文档(中文版)
文章目录
前言
今天这篇博客终于要迎来重头戏了,我们要导入我们的数据,并且要完善数据库以及数据库和网站的交互,并且设计网站首页界面,让数据在网站上展示出来,并且配置各页面之间的调度功能以及数据缓存功能,还包括一些页面静态化和缓存数据的知识,这篇博客异常重要的原因就是上面,另外所需工具和数据我都放在了上面的链接,如有需要,直接下载即可,那么就开始今天的学习吧!
一、导入数据
- 取消外键约束
- 导入数据
- 恢复外键约束
二、商品模型类概述
- 首先要显示首页界面,所以修改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 首页获取购物车商品数目时出错
- 具体错误
- 错误原因
- 解决方法
总结
这篇博客也终于完成了,有点长啊,一万多字了都,但是功夫不负有心人,网站首页我们已经完成了,接下来就一步一步完成每个模块就好了,下一篇博客会给大家带来网站详情页的搭建!