Django总结
发送短信:
- 检查确认图片验证码
- 检查60s内是否发送过
- 否生成短信验证码
- 保存短信验证码以及发送记录到redis中
- 发送短信
celery发送短信:
celery:异步任务队列:有broker(任务对列)&worker(任务处理者)组成 。
1. django将要执行的任务定义成一个函数
-
通过调用func.delay()方法会将任务通过redis,或者rabbit传递到任务队列中去
-
worker会循环从任务队列获取任务
-
worker从broker中获取到任务,会使用多进程去执行任务
-
worker执行完成可以将执行结果存储到backends
-
django(客户端)会从backends中获执行取结果
图片验证码:
后端通过uuid生成一个唯一的图片验证码
把生成的图片验证码保存到redis中,同时设置过期时间
保存发送记录到redis中
当用户输入图片验证码时候会判断与数据库中储存的是否一致
不一致,返回错误
相等验证通过进入执行下咦步
JWT:
构成
-
头部header
-
载荷 playhord
-
密钥 serect key
流程
- 用户使用用户名密码来请求服务器
- 服务器进行验证用户的信息
- 服务器通过验证发送给用户一个token
- 客户端存储token,并在每次请求时附送上这个token值
- 服务端验证token值,并返回数据
支持手机号/用户名登录
定时任务:
-
安装 django-crontab
-
添加到应用
-
设置任务定时时间
基本格式 : 分 时 日 月 周 命令 M: 分钟(0-59)。每分钟用*或者 */1表示 H:小时(0-23)。(0表示0点) D:天(1-31)。 m: 月(1-12)。 d: 一星期内的天(0~6,0为星期天)。
-
开启定时任务
python manage.py crontab add #添加任务到系统中 python manage.py crontab show #显示激活的定时任务 python manage.py crontab remove #移除定时任务
页面静态化:
网站的首页会经常被访问,为了提升访问速度可以使用页面静态化。页面静态化即将动态渲染生成的页面结果保存成html文件,放到静态文件服务器中。用户访问的时候访问的直接是处理好之后的html静态文件。
elasticsearch+haystack+docke实现搜索功能:
通过docker安装elasticsearchik搜索引擎,然后安装django插件haystack对接esc,然后生成索引,当用户查询时候elastic会通过haystack获取数据返回。
用户浏览历史排序:
前端返回用户浏览的商品id,然后解析登录的token获取对应的用户然后通过查询商品id获取对应商品,删除rdis中已经存在的然后把用户浏览历史记录选取指定数量保存到redis当中。然后返回数据给前端展示。
商品列表分页排序:
drf后端提供的有分页支持,在配置文件中配置对pagination进行配置也可以继承rest提供的pagination父类重新定义子类修改部分参数page_size ,"page_size_quary_parm" ,通过过滤器实现排序展示
fastdfs存储文件:
tracker调度执行器,客户端向tracker发起上传请求,tracker向storage存储服务器查询是否已经存储,未存储过,会保存。然后返回数据id给客户端
ckeditor富文本编辑器:
- 安装应用
- 添加到install_app中 一个支持图片上传一个不支持"ckeditor,ckeditor_uploader"
- 添加设置调整宽高''toolbar ,high,weight''
- 为模型类添加字段“RichTextField&RichTextUploadingField”
热销商品数据:
从数据库查询出当前类别商品,然后根据当前类别商品的销量进行排序。然后把结果返回给前端进行展示。
订单结算使用乐观锁:
乐观锁:数据更新前会先查询,如果数据和更新前数据一致就会执行更新,如果查询到的数据和之前查询不一致,就不会执行更新。
-
先获取当前下单用户
-
生成一个订单编号
- 创建一个保存节点
- 创建订单信息
- 获取购物车信息
- 查询出商品数据
- 判断订单
- 判断库存
- 减少库存
- 保存订单商品
- 更新订单的金额数量
-
提交事务
-
更新数据库中订单数据
网友评论