完整电商项目--(四)用户登录(1):基本业务逻辑

登录注册的业务逻辑流程梳理 登录注册在不同的产品中有不同的体现,因为对于它的很多功能细节使用的好坏也没法一概而论,还是基于具体场景考虑。 这是早前实习期间做的一个登录注册流程的优化,主要是关于登录注册的业务流程图(Transaction Flow Diagram)梳理,包括短信验证码登录、账号密码登录、第三方登录、忘记密码、图形验证码等以及注意的一些情况。 业务流程图中最主要的几个问题就是: 谁(who),在什么时候(when),在什么条件下(condition),输入什么(input),输出什么(output),输出流向(flow) 阅读详情

账号登录

多账号登录:
  • 支持使用注册时的 用户名,和 手机号进行登录
  • 这是目前最流行的方式我觉得,给用户的体验也是最好的。 信息化时代,任何网站都需要账号。 众多的用户名。。。我是记不住。 但是同一个特点是都支持手机号登录。
  • 我们可以输入手机号 和密码进行登录。
登录流程(同注册时讲的一样)
  • 接收,验证,处理,响应
    • (1)处理当中的 保持登录状态 以及后续的退出登录,都已经讲过了。
    • (2)我们在登陆成功之后,肯定是跳转到首页的。 然后显示用户名的操作:
      • 方案一:模板中 request 变量直接渲染用户名 , 缺点:不方便做首页静态化
      • 方案二:发送ajax请求获取用户信息,缺点:需要发送网络请求
      • 方案三:Vue读取cookie渲染用户信息
    • 综合来讲我们使用 方案三。所以处理操作中,需要增加写入 用户信息,cookie的操作。
自定义认证后端
  • 我们打开官网,找到认证登录的模块
  • (1) 发现,认证用户存在。是通过一个authenticate( ) 方法。
    在这里插入图片描述
  • 方法描述已经十分清晰了。 我们知道这个函数并不能‘直接’认证用户, 而是 (1)默认接收 用户名(username)和密码(password),对着两个参数进行验证。(2 )并且 可以选择性的接收一个request参数(这个在某些情况下会使用到,因为request对象中包含了很多信息)
  • 我们就来看下默认的认证后端,如何设置的:
    在这里插入图片描述
  • 我们知道了,在 AUTHENTICATION_BACKENDS 配置项中,可以添加认证后端,默认的只有一个,就是我们的默认认证后端,并且会尝试所有的认证后端,在前面一个认证失败的情况下。 下面只需要编写我们自己的认证后端,去处理 多账户登录,在添加到这个即可。
编写多用户认证后端
class MeiduoModelBackend(ModelBackend):  # 继承django提供的认证系统
    def authenticate(self, request, username=None, password=None, **kwargs): 
		user = super().authenticate(request, username=username, password=password)
	     # print(user)
	     if user is not None:
	         return user
	     else:
	         # except:
	         # 如果未查到数据,则返回None,用于后续判断
	         try:
	             user = User.objects.get(mobile=username)
	         except:
	             return None
	         else:
	             # 判断密码
	             if user.check_password(password):
	                 return user
	             else:
	                 return None

这样,很简单的代码。我们就可以实现 手机号登录啦。

首页用户名展示
  • 登录成功跳转到首页,显示用户名等信息 在这里插入图片描述

  • 谁来写cookie?

  • 我们翻看文档,查看HttpResponse对象,是具有这个功能的
    在这里插入图片描述

  • 不仅如此,他的子类同样都拥有这些功能
    在这里插入图片描述
    包括 JsonResponse对象 也是 HttpResponse 的一个子类。

  • 那么上代码:

# 响应注册结果
# 重定向到首页,命名空间和 应用名就讲了
response = redirect(reverse('contents:index'))

# 注册时用户名写入到cookie,有效期15天
response.set_cookie('username', user.username, max_age=3600 * 24 * 15)  # 以秒为单位

return response

over!

Python写业务逻辑的几个编码原则 作为一个写业务逻辑的boy,我需要专注的就是把业务逻辑写好。写业务逻辑并不复杂,就是把编程最基础的东西使用好,有变量、循环、流程控制、函数、数据库等。 但是写出的逻辑要通俗易懂、易于理解,避免炫技、晦涩。在目前团队中待了一段时间了,根据 code review 和自己的理解整理出一些基本原则。 业务代码思想原则 第一:代码要足够容易阅读。 代码是给程序员阅读的,首先要做到的就是逻辑清晰,易于阅读。所以要避免毫无意义的变量名、嵌套过多的逻辑判断、过于复杂的流程控制。在易读性和性... 阅读详情

相关推荐

可以写进简历的软件测试电商项目,不进来get一下?

说实话,在找项目的过程中,我下载过(甚至付费下载过)N多个项目、联系过很多项目的作者,但是绝大部分项目,在我看来,并不适合你拿来练习,它们或多或少都存在着“问题”,比如: 很少有统一的、能涵盖多端使用的项目...

weixin_56502375的博客 1万+

电商管理系统-登录功能

登录逻辑: 1.在登录页面输入账号和密码进行登录,将数据发送给服务器 2.服务器返回登录的结果,登录成功则返回数据中带有token 3.客户端得到token并进行保存,后续的请求都需要将此token发送给服务器,服务器会验证token以保证用户身份。 登录模块详细步骤: 1.新建login.vue组件,在element.js按需导入需要的组件,在App.vue(根组件)中添加路由占位符; 2.在router.js中导入组件并设置规则,即routes里设置输入path是/login,跳转到login,还需

weixin_41274200的博客 1555

电商项目需求分析

电商项目需求分析 1.电商项目 1 面向对象设计项目的实体模型 2 Java中的集合框架,使用集合框架构建醒目数据底层 3 使用函数/方法复用代码,实现功能的回调,完成项目的业务逻辑开发 4 使用Java IO流实现购物清单打印 5 Java应用的 6 HTTP协议 7 HTTP通信开发 项目业务功能 实现用户的登录功能 实现用户的注册功能 登录成功后首页展示所有商品的类别 选择商品...

qq_43834295的博客 8705

详细说一下电商项目的业务逻辑

电商项目的业务逻辑是指电商网站或应用程序的运营流程和操作流程。通常包括以下几个步骤: 商品管理:网站或应用程序的管理员需要维护商品的信息,包括商品的名称、描述、价格、图片等。 用户管理:网站或应用程序需要提供用户注册、登录、个人信息管理等功能。 购物车管理:用户可以将商品加入购物车,并在结账时一次性结算。 订单管理:网站或应用程序需要支持生成订单、查询订单、取消订单等功能。 支付管理:用...

weixin_35748962的博客 848

Vue3+Spring Boot 大型电商项目实战前后端分离

本项目是一个功能齐全的电商平台,包括用户注册与登录、商品展示与搜索、购物车管理、订单处理等功能模块。前端采用 Vue 3 构建,利用其响应式数据绑定和组件化开发的优势,为用户提供流畅的交互体验;后端基于 Spring Boot 框架,提供高效的接口服务和数据处理能力。

HappyAcmen 2712

Android电商项目学习笔记(一)--登录注册完成

本项目来源于慕课网Android实战课——Android通用框架设计与完整电商开发 其实学习这个项目已经有一段时间了,学习方法是跟着项目视频去敲代码,然后将其中的逻辑,思想整理顺畅。当然我不知道这样做的是否是正确的,但对我来说,收获还是巨大的,因为以前只是对框架的使用,会对框架的一些简单的封装。而该项目里的干货还是满满的,对于我这个初级小白来说。 好了废话不多说,总结一下今天的学习...

CoderZJ的博客 1819

python 基础之逻辑语句

【代码】python 基础之逻辑语句。

老衲爱洗头的博客 445

电商项目——从0到1挑战

挑战一下从0到1开发一个电商项目——目前更新到“如何实现多数据源事务同时成功同时失败的解决方案”

weixin_52465547的博客 1368

【电商项目实战】用户登录(详细篇)

当用户输入用户名和密码将数据提交给后台数据库进行查询,如果存在对应的用户名和密码则表示登录成功,登录成功之后跳转到系统的主页就是index.html页面,跳转在前端使用jquery来完成。

知足上进,不负野心。 2163

前端电商项目

项目介绍:该项目是基于vue-cli创建的一个综合性的电商购物网站,类似于淘宝,京东商城。登录后用户可以在该网站浏览商品,加入购物车,下订单以及各种各样的活动。未登录的用户可以不能进行下单,他们可以通过手机号注册或者qq登录的方式进行登录完成购物。技术栈:vue3.0(使用组合API的方式来开发),axios,vue-router(单页路由),vuex(状态管理, vuex数据持久化),@vueuse/core(组合api常用工具库), vee-validate(表单校验)遇到的问题:(1)后台接口请求完毕

m0_59214478的博客 5774

电商项目模块间调用关系

电商项目中各个模块间的一个调用关系可以结合着表结构的设计一块来看。另外本文档所涉及到的业务逻辑较浅,比较适合刚入门的同事。但是,无论如何希望能够一定的帮助。

电商项目 的业务逻辑与相关要点

综述: 1、在整个项目中,我们采用的是nginx+tomcat来部署的(面试官可能会问nginx是谁来部署的?如何部署的?nginx的执行流程、优点),nginx一方面做加载静态资源的服务器,另一方面来做反向代理和负载均衡。因为该项目需要在多个环境中运行,我们利用了nginx的反向代理解决了不同环境同系统访问地址不统一带来的问题。 2、因为整个项目实现的功能较多,所以采用分布式的架构设计...

喜欢历史的码农 1万+

业务逻辑业务逻辑业务逻辑业务逻辑

业务逻辑业务逻辑业务逻辑业务逻辑业务逻辑业务逻辑业务逻辑业务逻辑业务逻辑业务逻辑业务逻辑业务逻辑

电商项目实战--用户相关

1. 项目分析 首先应该分析该项目中需要处理哪些种类的数据,在本项目中有:商品、商品类别、用户、收货地址、购物车、收藏、订单…… 然后,确定以上这些数据的开发顺序,原则上应该先开发基础数据和简单的数据相关的功能,所以,以上数据的开发顺序应该是:用户 > 收货地址 > 商品类别 > 商品 > 收藏 > 购物车 > 订单。 接下来,分析第1种数据的相关功能,即“用户...

zhyue28的博客 1234

大型电商 微服务 分布式业务逻辑详细分析

第一部完善的大型电商后系统业务逻辑详细分析,包含了电商行业系统业务模块之间的关联关系及运用

在WPS/Office中免费使用AI,快速提升办公效率!​

《免费解锁WPS/Office AI办公神器教程》摘要: 本教程详解如何通过第三方插件OfficeAI免费实现WPS/Office智能办公,突破官方付费限制。从安全设置到安装配置,手把手教学,涵盖文档生成、PPT美化、Excel图表等核心功能。关键优势包括零成本、全场景支持及云端/本地双模式切换,并附常见问题解决方案。注意需使用WPS 2024+版本,安装时需临时关闭杀毒软件。教程强调工具来源合法性,建议商用购买正版授权。(149字)

杜哥无敌的博客 2302

【电商】登录安全

目录 1、登录安全说明 2、登录逻辑安全 1、登录安全说明 用户登录是电商网站整体业务逻辑中重要的一环,又是最容易受到攻击的接口,所以确保登录安全,是电商网站整体业务逻辑中的重点; 互联网泄漏的帐号密码量大约在1.5亿,当登录接口存在安全风险,撞库,扫号,破解密码等行为不禁会影响服务器性能,还会对用户造成极高的风险,重要业务会导致泄密事件的发生。 2、登录逻辑安全 2.1、逻辑错误总...

Roda的博客 1万+

半导体AMHS系统振动控制技术演进:从0.5G到超低振动的工艺革命

在半导体制造进入埃米级时代后,AMHS的振动控制能力将成为区分厂商技术等级的标尺。国内企业通过“弹性机械设计-混合主动控制-智能调度”的三重创新,正逐步突破0.2G阈值,支撑12英寸晶圆厂向3nm/2nm制程升级。未来,振动抑制不再仅是物流系统的性能参数,而是与光刻、刻蚀等核心工艺深度耦合的基础能力,这将重塑半导体设备产业的竞争格局。

m0_60674045的博客 1583

Web项目 - 登录注册业务逻辑

web项目,登录注册业务逻辑

毕业才是起点 1174

同花顺API实战指南:从零搭建股票数据自动化采集系统

本文提供了一份详尽的同花顺API实战指南,手把手教你从零开始搭建股票数据自动化采集系统。内容涵盖API权限申请、Python环境配置、数据采集与存储脚本编写、自动化定时任务实现以及数据清洗等核心环节,旨在帮助量化交易与数据分析爱好者构建稳定可靠的数据源,解放双手,提升研究效率。

weixin_29200741的博客 2395

GPU硬件架构与微架构深度解析28-稀疏计算:稀疏矩阵计算的硬件支持

本文介绍了GPU加速稀疏计算的关键技术。主要内容包括:1)稀疏数据的存储格式(COO、CSR、CSC)及其特点;2)现代GPU的稀疏计算硬件优化,如NVIDIA的稀疏张量核心和内存访问优化;3)稀疏计算在推荐系统、NLP和科学计算等领域的应用案例;4)性能优化技巧,包括存储格式选择、硬件特性利用和混合精度计算等。文章指出,专用稀疏计算技术可显著提升AI和大规模科学计算的效率,相比传统方法可获得5-10倍的性能提升。

2301_79143213的博客 111

软件测试电商项目实战(写进简历没问题)

说实话,在找项目的过程中,我下载过(甚至付费下载过)N多个项目、联系过很多项目的作者,但是绝大部分项目,在我看来,并不适合你拿来练习,它们或多或少都存在着“问题”,比如:

自动化软件测试 8101

windows11下pycharm怎么完全卸载?完整卸载pycharm编辑器的教程

在卸载pycharm时都有遇到卸载不干净不完全的问题,那么具体怎样做才能完全卸载pycharm呢?退出所有的操作,重新启动电脑,会发现相关的软件已经被删除了。步骤1:卸载软件并删除安装目录。步骤2:删除相关的注册表。

拥抱具身智能,昇腾Ascend C 1万+
上一篇: 完整电商项目--(三)验证码操作(3):短信验证码 -- cerely-RabbitMQ实现异步
下一篇: 完整电商项目--(四)用户登录(2):判断用户是否登录
我是py呀
博客等级 码龄8年 205粉丝 130原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值