013 天天生鲜项目简略中
36商品模型类概述(其实这个我看完页面静态化才过来看的,百度云的视频把这两块弄混了,要先看首页,才看静态化)¶
首先是index页面的继承(base.html)
然后是view视图
url的配置
下面进行详细的配置 37 首页内容获取和展示
38 redis存储购物车记录分析
保存购物车信息的数据设计
HLEN key http://redis.cn/commands/hlen.html
下面进行一个模拟:分别看一下未登录跟登录的状态
我们首先连接mysql数据库看一下我们用户的id
39 首页的¶
39 首页页面静态化 (用户没登录时显示的界面静态的)
写一个新的celery的tasks任务
这里需要在模板中新建两个模板html
40 配置ngnix提交静态页面
上面的有中文路径不行
这个随手测试
这个就是吧项目拷贝一份放置到英文路径下
重启nginx
可以看到有两个监听一个是80端口,一个是8888端口,这个页面中的图片是nginx进行提供的
由于自己使用windows比较多,还是需要把除了django服务器之外的组件放到另一台电脑的虚拟机上,下面是改动的地方¶
安装依赖包¶
- 安装需要的包(就是那一些django等前面用到的)
- 安装fdfs(注意新建的虚拟机没有GCC,以及make需要进行安装,并且注意安装过一次的是需要重新解压的,有些包被剪切了) 3.由于是新安装的虚拟机一些依赖没有安装,要进行安装 参考网址https://www.jb51.net/article/80468.htm 以及https://blog.csdn.net/wu_cai_/article/details/80278611
mysql数据库的配置¶
- 远程虚拟机创建数据库
- 设置远程登录的权限
- 本机远程登录测试
- 项目数据库的更改
redis数据库的配置(参考redis的课件)¶
- 首先绑定虚拟机的ip
Redis的配置信息在/etc/redis/redis.conf下。
查看
sudo gedit /etc/redis/redis.conf
绑定ip:如果需要远程访问,可将此⾏注释,或绑定⼀个真实ipbind 127.0.0.1
改成bind 192.168.124.77
自己的虚拟机ip地址 - 重启redis
重启 sudo service redis restart
-
可以看到ip地址已经改变
4.修改celery发送邮件绑定的redis的ip
同时改变邮件激活绑定的ip
改变redis缓存绑定的ip
-
配置Django缓存数据库
配置fdfs服务器的ip¶
迁移数据库¶
将项目复制一份放到虚拟机上,开启celer任务¶
注册测试¶
收到注册激活邮件
redis缓存配置查看¶
1.远程连接redis的命令
redis-cli -h 192.168.124.77 -p 6379
2.查看
创建后台管理员¶
配置nginx80端口的配置¶
重启nginx
生成一个静态的index页面¶
在本机的浏览器测试¶
终于配置好了我的ubuntu虚拟机以及windows 日常使用不得不用windows也是很无奈啊
41 admin管理更新首页数据表时重新生成index静态页面¶
为了实现这个功能我们需要在admin中进行admin.Modeladmin的继承类.实现这个功能
可以看到又多了一张图片
下面在试一次
再次进行修改的时候静态页面发生了改变
看一下celery的任务改变
但是我们用多了好多的表,但是我们要是所有的管理类需要重写就很麻烦,就抽象父类然后进行继承
其实就是下面这个流程
42 静态index页面和 index View的调度
实际部署服务器,不能让用户直接访问nginx服务器的ip地址
这里就牵扯一个问题,我们首页的返回是静态页面还是我们的index view的视图
这时候就需要一个nginx调度服务器
给用户暴露的ip就是nginx的ip
最后的任务调度应该是这样的
目前先做到这样就ok了,后面会继续做的
43 首页数据缓存设置和获取
页面数据的缓存:
把页面使用的数据存放在缓存中,当再次使用这些数据的时,先从缓存中获取,如果获取不到,再去查询数据库,减少数据库查询的次数
参考:https://yiyibooks.cn/xx/django_182/topics/cache.html
开始设置缓存
更新缓存
什么时候需要更新首页的缓存数据?
当管理员后台修改首页信息对应的表格中的数据的时候,需要更新首页的缓存数据
直接在admin前面配置的更新index静态页面的时候进行缓存的清除就ok了
为什么要设置缓存页面的过期时间呢? 假设后台管理员这里没有清除缓存,我们设置了缓存过期时间,那么过期了我们就可以避免一直不更新后台的数据
44 总结¶
1.网站本身性能的优化,减少数据的查询的次数. 首页页面的静态化,页面数据的缓存 2.防止恶意的功能,DDOS攻击 如果没有设置缓存,那么这么多的请求会导致数据库直接就崩了
45 详情页的设计¶
46 商品详情信息的获取和显示
最终要实现的效果
简单的设计
由于数据库的数据没有,后面要自己添加,主要得修改很多地方,以后不更新了,剩下的其实就是部署比较重要,其他的啰里啰嗦没啥大的用处