Django项目实战
文章平均质量分 61
B.Bz
毛毛你是个好姑娘
展开
-
Django项目实战----添加支付宝支付
支付宝开放平台创建应用(沙箱环境)获取到信息使用openssl生成应用的公钥和私钥OpenSSL下载链接下载一个自己对应版本的安装程序生成私钥 :# genrsa -out 文件名.pemgenrsa -out app_private_key.pem生成对应的公钥 :# rsa -in 私钥文件名.pem -pubout -out 公钥文件名.pemrsa -in app_private_key.pem -pubout -out app_public_key.pem配原创 2021-06-10 21:13:48 · 491 阅读 · 0 评论 -
Django项目实战----生成订单时高并发问题使用乐观锁
用户生成订单时出现的高并发问题如果我们的商城有足够多的用户,在相差0.00000几秒的情况下基本上同时下单,这样先查询商品库存,再修改商品库存,的时候就会出现资源竞争问题画图理解:...原创 2021-06-09 21:06:28 · 440 阅读 · 0 评论 -
Django项目实战----订单页面的显示和生成订单、提交订单的逻辑
创建订单模型类models.pyfrom django.db import models# Create your models here.from django.db import modelsfrom apps.goods.models import SKUfrom apps.users.models import User, Addressfrom utils.models import BaseModelclass OrderInfo(BaseModel): """.原创 2021-06-08 17:29:51 · 2477 阅读 · 0 评论 -
Django实战---商城购物车的增删改、显示和合并购物车
购物车数据存储方案存储数据说明 如何描述一条完整的购物车记录? 用户itcast,选择了两个 iPhone8 添加到了购物车中,状态为勾选 一条完整的购物车记录包括:用户、商品、数量、勾选状态。 存储数据: user_id、sku_id、count、selected存储位置说明 购物车数据量小,结构简单,更新频繁,所以我们选择内存型数据库Redis进行存储。 存储位置:Redis数据库 redis数据格式Hash 字典格式 cart_USER_ID {sku_id.原创 2021-06-04 21:01:33 · 1073 阅读 · 0 评论 -
Django实战----页面静态化
关于页面静态化前言:因为代码在windows上运行,Linux上的定时任务无法使用,正常来说要把页面静态化的脚本做成定时任务,每过一段时间自动渲染一次,因为MySQL内的数据是会变化的为什么要做页面静态化减少数据库查询次数。提升页面响应效率。具体的做法将动态渲染生成的页面结果保存成html文件,放到静态文件服务器中。用户直接去静态服务器,访问处理好的静态html文件。哪些数据不能静态化处理用户相关数据不能静态化:1.1 用户名、购物车等不能静态化。动态变化的数据不能静态原创 2021-06-03 21:10:55 · 245 阅读 · 0 评论 -
Django项目实战---搜索引擎Elasticsearch
Elasticsearch的安装从docker的仓库中拉取镜像 sudo docker image pull delron/elasticsearch-ik:2.4.6-1.0修改elasticsearch-2.4.6的配置文件elasticsearch-2.4.6压缩包已放入资源retwork.host: 修改为本机ip地址运行搜索引擎服务器sudo docker run -dti --name=elasticsearch --network=host -v /home原创 2021-06-02 21:39:45 · 385 阅读 · 0 评论 -
Django项目实战----点击商品分类查询出商品和销量排行
点击商品分类查询商品流程用户点击三级分类进入这个分类的商品页并发送一个请求1.1 前端发送的参数有:分类id,页数,总页数,排序方式后端接收请求和参数前端需要的数据格式 3.1 count为总页数去数据库查询这个分类的对象获取这个分类对象的三级分类,前端需要三级分类的名字弄到面包屑导航上查询这个分类对象下的所有的上架商品数据并按前端给的排序方式排序(按照创建时间)创建分页对象组织数据返回数据代码# /list/115/skus/?page=1&page_size=原创 2021-05-26 21:23:13 · 499 阅读 · 1 评论 -
Django项目实战----实现首页频道分类显示和显示fastdfs存储的图片
分析类别数据格式查询商品类别提取到工具包,新建一个py文件from collections import OrderedDictfrom apps.goods.models import GoodsChanneldef get_categories(): # 查询出所有商品频道数据 并按频道组名和组内顺序排序 channels = GoodsChannel.objects.order_by('group_id', 'sequence') # 生成..原创 2021-05-25 16:34:59 · 166 阅读 · 0 评论 -
Django项目实战----FastDFS文件存储方案
什么是FastDFS1. FastDFS介绍用c语言编写的一款开源的轻量级分布式文件系统。功能包括:文件存储、文件访问(文件上传、文件下载)、文件同步等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标。可以帮助我们搭建一套高性能的文件服务器集群,并提供文件上传、下载等服务。FastDFS架构 包括Client、Tracker server和Storage s.原创 2021-05-25 15:11:35 · 353 阅读 · 0 评论 -
Django项目实战----接入第三方QQ登录绑定用户
需求用户点击QQ登录接入第三方登录不需要输入本网站账户就可登录如果没有绑定过就注册一个图解逻辑流程用户点击QQ登录按钮,后端使用QQLoginTool第三方库来生成一个 QAuthQQ 对象的 get_qq_url() 方法返回QQ登录页面url用户扫码登录QQ账号 得到code,携带去请求QQ互联上设置的回调地址后端视图接收请求,接收code参数3.1 QAuthQQ对象的get_access_token(code)方法获取access_token,参数为传过来的code .原创 2021-04-27 15:14:52 · 531 阅读 · 0 评论 -
Django实战----用户修改密码
需求流程视图继承LoginMixin检验用户是否登录获取参数2.1 获取旧密码和两次输入的新密码校验参数3.1 检验参数是否都存在3.2 检验新密码是否与旧密码相等3.3 检验两次输入新密码是否一致3.4 正则检验三次输入密码格式是否正确检验输入的旧密码是否是数据库中正确的密码用户对象.set_passwrod(用户输入的新密码)方法更换密码保存到数据库删除cookie中的sessionid和cookie中的username 相当于退出重新登录代码Django自带的原创 2021-04-23 20:24:19 · 1671 阅读 · 0 评论 -
Django实战----用户中心内收获地址的增删改查
需求添加收获地址模型类继承于我们自己写的BaseModel类里面有创建数据的时间和更新数据的时间BaseModel代码在utils工具包内创建models.py 放入我们自己写的model类设置abstract为True告诉Django程序这个model类只是用来继承,不创建表from django.db import modelsclass BaseModel(models.Model): create_time = models.DateTimeField(a.原创 2021-04-23 20:05:25 · 356 阅读 · 0 评论 -
Django实战-----收货地址选择省市区三级联动(存入缓存数据)
子应用内视图代码逻辑创建模型类中的areas表添加省市区数据related_name 起别名ForeignKey关联self就是自关联from django.db import models# Create your models here.class Area(models.Model): """省市区""" name = models.CharField(max_length=20, verbose_name='名称') # 父级id 自关联外键 self原创 2021-04-20 16:51:05 · 828 阅读 · 2 评论 -
Django实战-----用户中心登陆验证、邮箱激活验证
用户中心登录验证和邮箱激活验证用户中心登录验证验证用户是否登录处理方式用户登录验证代码在utils工具包内新建一个py文件重写handle_no_permission方法来返回前端需要的数据而不是抛出异常让需要验证用户登录视图来继承我们重写的这个类邮箱激活验证保存用户邮箱生成加密token发送邮件异步激活页面逻辑用户中心登录验证验证用户是否登录处理方式因为登录的时候使用了Django自带的登陆保持,所以request.user就可以判断用户是否已经登录。但是有一个问题,如果需要验证登录的地方有很原创 2021-04-19 20:53:30 · 403 阅读 · 0 评论 -
Django项目实战-----实现登录验证、多用户登录和退出逻辑
目录登录逻辑登录逻辑图解用户登录逻辑流程登录逻辑视图内代码多用户登录(判断是用手机号登录还是用户名登录)退出逻辑退出逻辑流程退出登录视图内代码登录逻辑登录逻辑图解用户登录逻辑流程提取前端的数据① 用户输入的用户名② 用户输入的密码③用户是否勾选记住密码验证参数① 判断参数是否全部都有② 验证用户用户名和密码是否正确保持登录状态处理记住密码① 如果勾选了记住密码就设置session有效期,看需求要记住多长时间② 如果没有勾选就设置session有效期为0,关闭浏览器就会自动删原创 2021-04-16 20:01:47 · 997 阅读 · 0 评论 -
Django项目实战-----发送短信验证码实现celery异步操作(消费者与生产者模式)
什么是消费者与生产者模式?答:生产者生产一个东西放入到队列,消费者就取出来消费使用,生产者与消费者使用队列交互。画图理解:为什么要使用celery异步操作?答:因为发送短信验证码要去请求第三方平台,是一个耗时操作,如果一个用户请求短信验证码时别的用户就必须等待请求完才能发送下一个请求,所以要使用异步,耗时操作的时候无需等待,直接发送下一个请求安装celery第三方库-U是下载最新版本 pip install -U Celery项目根目录创建一个包存放celery的代码创建m.原创 2021-04-16 11:28:27 · 312 阅读 · 1 评论 -
Django项目实战-----实现发送短信验证码逻辑并验证图片验证码是否正确(验证码2完结)
要实现发送短信验证码功能要使用第三方库,这里我们使用容联云使用容联云建立应用建立一个新的应用只需要勾选短信验证码就可创建成功之后点击应用管理查看账户ID和账户Token应用ID下载接口容联云可以使用pip下载接口容联云接口文档,查看下载https://doc.yuntongxun.com/p/5f029ae7a80948a1006e776epip install ronglian_sms_sdk测试短信验证码接口import jsonfrom rongl.原创 2021-04-15 20:41:09 · 387 阅读 · 0 评论 -
Django项目实战------实现显示图片验证码逻辑(验证码1)
视图内代码生成验证码的包放到了资源内class ImageCodeView(View): def get(self, request, uuid): # 接口函数生成验证码的内容和图片 code, image = captcha.generate_captcha() # 连接settings.py文件内设置的redis数据库 redis_cli = get_redis_connection('code') # 把验证原创 2021-04-09 17:01:09 · 200 阅读 · 0 评论 -
Django项目实战--------自带的模型类以及前后端分离的跨域问题
Django中自带的User类当我们需要往数据库中添加用户表的时候Django自带了一个表的模型类,里面包含很多我们需要的字段,只需要继承这个类来使用或者扩展就可以了我们只需要继承AbstractUser类多添加一个mobile字段, 手机号class User(AbstractUser): mobile = models.CharField(max_length=11, unique=True, null=False) class Meta: db_table原创 2021-04-08 21:14:29 · 196 阅读 · 0 评论